<!DOCTYPE html>
<html>
<head>
<title>lufylegend 开源引擎 API文档</title>
<meta charset="UTF-8">
<style>
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
  -moz-border-radius: 0 0 0 0 !important;
  -webkit-border-radius: 0 0 0 0 !important;
  background: none !important;
  border: 0 !important;
  bottom: auto !important;
  float: none !important;
  height: auto !important;
  left: auto !important;
  line-height: 1.1em !important;
  margin: 0 !important;
  outline: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
  position: static !important;
  right: auto !important;
  text-align: left !important;
  top: auto !important;
  vertical-align: baseline !important;
  width: auto !important;
  box-sizing: content-box !important;
  font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
  font-weight: normal !important;
  font-style: normal !important;
  font-size: 1em !important;
  min-height: inherit !important;
  min-height: auto !important;
}

.syntaxhighlighter {
  width: 100% !important;
  margin: 1em 0 1em 0 !important;
  position: relative !important;
  overflow: auto !important;
  font-size: 1em !important;
}
.syntaxhighlighter.source {
  overflow: hidden !important;
}
.syntaxhighlighter .bold {
  font-weight: bold !important;
}
.syntaxhighlighter .italic {
  font-style: italic !important;
}
.syntaxhighlighter .line {
  white-space: pre !important;
}
.syntaxhighlighter table {
  width: 100% !important;
}
.syntaxhighlighter table caption {
  text-align: left !important;
  padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
  width: 100% !important;
}
.syntaxhighlighter table td.code .container {
  position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
  box-sizing: border-box !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: none !important;
  background: white !important;
  padding-left: 1em !important;
  overflow: hidden !important;
  white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
  text-align: right !important;
  padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
  padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
  padding-left: 0em !important;
}
.syntaxhighlighter.show {
  display: block !important;
}
.syntaxhighlighter.collapsed table {
  display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
  padding: 0.1em 0.8em 0em 0.8em !important;
  font-size: 1em !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
  display: inline !important;
  margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
  padding: 0 !important;
  display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
  display: inline !important;
}
.syntaxhighlighter .toolbar {
  position: absolute !important;
  right: 1px !important;
  top: 1px !important;
  width: 11px !important;
  height: 11px !important;
  font-size: 10px !important;
  z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
  display: inline !important;
}
.syntaxhighlighter .toolbar a {
  display: block !important;
  text-align: center !important;
  text-decoration: none !important;
  padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
  display: none !important;
}
.syntaxhighlighter.ie {
  font-size: .9em !important;
  padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
  line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
  padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
  background: none !important;
}
.syntaxhighlighter.printing .line .number {
  color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
  color: black !important;
}
.syntaxhighlighter.printing .toolbar {
  display: none !important;
}
.syntaxhighlighter.printing a {
  text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
  color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
  color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
  color: blue !important;
}
.syntaxhighlighter.printing .keyword {
  color: #006699 !important;
  font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
  color: gray !important;
}
.syntaxhighlighter.printing .variable {
  color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
  color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
  color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
  color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
  font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
  color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
  color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
  color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
  color: black !important;
}

.syntaxhighlighter {
  background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
  background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
  background-color: white !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
  background-color: #e0e0e0 !important;
}
.syntaxhighlighter .line.highlighted.number {
  color: black !important;
}
.syntaxhighlighter table caption {
  color: black !important;
}
.syntaxhighlighter .gutter {
  color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
  border-right: 3px solid #6ce26c !important;
}
.syntaxhighlighter .gutter .line.highlighted {
  background-color: #6ce26c !important;
  color: white !important;
}
.syntaxhighlighter.printing .line .content {
  border: none !important;
}
.syntaxhighlighter.collapsed {
  overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
  color: blue !important;
  background: white !important;
  border: 1px solid #6ce26c !important;
}
.syntaxhighlighter.collapsed .toolbar a {
  color: blue !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
  color: red !important;
}
.syntaxhighlighter .toolbar {
  color: white !important;
  background: #6ce26c !important;
  border: none !important;
}
.syntaxhighlighter .toolbar a {
  color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
  color: black !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
  color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
  color: #008200 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
  color: blue !important;
}
.syntaxhighlighter .keyword {
  color: #006699 !important;
}
.syntaxhighlighter .preprocessor {
  color: gray !important;
}
.syntaxhighlighter .variable {
  color: #aa7700 !important;
}
.syntaxhighlighter .value {
  color: #009900 !important;
}
.syntaxhighlighter .functions {
  color: #ff1493 !important;
}
.syntaxhighlighter .constants {
  color: #0066cc !important;
}
.syntaxhighlighter .script {
  font-weight: bold !important;
  color: #006699 !important;
  background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
  color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
  color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
  color: red !important;
}

.syntaxhighlighter .keyword {
  font-weight: bold !important;
}

.syntaxhighlighter {
  background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
  background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
  background-color: white !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
  background-color: #e0e0e0 !important;
}
.syntaxhighlighter .line.highlighted.number {
  color: black !important;
}
.syntaxhighlighter table caption {
  color: black !important;
}
.syntaxhighlighter .gutter {
  color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
  border-right: 3px solid #6ce26c !important;
}
.syntaxhighlighter .gutter .line.highlighted {
  background-color: #6ce26c !important;
  color: white !important;
}
.syntaxhighlighter.printing .line .content {
  border: none !important;
}
.syntaxhighlighter.collapsed {
  overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
  color: blue !important;
  background: white !important;
  border: 1px solid #6ce26c !important;
}
.syntaxhighlighter.collapsed .toolbar a {
  color: blue !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
  color: red !important;
}
.syntaxhighlighter .toolbar {
  color: white !important;
  background: #6ce26c !important;
  border: none !important;
}
.syntaxhighlighter .toolbar a {
  color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
  color: black !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
  color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
  color: #008200 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
  color: blue !important;
}
.syntaxhighlighter .keyword {
  color: #006699 !important;
}
.syntaxhighlighter .preprocessor {
  color: gray !important;
}
.syntaxhighlighter .variable {
  color: #aa7700 !important;
}
.syntaxhighlighter .value {
  color: #009900 !important;
}
.syntaxhighlighter .functions {
  color: #ff1493 !important;
}
.syntaxhighlighter .constants {
  color: #0066cc !important;
}
.syntaxhighlighter .script {
  font-weight: bold !important;
  color: #006699 !important;
  background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
  color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
  color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
  color: red !important;
}

.syntaxhighlighter .keyword {
  font-weight: bold !important;
}




#leftcolumn{margin-left:0}
.leftcolumn{
	background: #272423;
	width:135px;
	padding:0;
	float:left;
	margin:0 0 0 0;
	font-size:18px;
	line-height:18px;
	font-family:Arial,Helvetica,Sans-serif;
	font-weight:bold;color:#fff;
	-moz-border-radius:8px 8px 0 0;
	-khtml-border-radius:8px 8px 0 0;
	-webkit-border-radius:8px 8px 0 0;
	border-radius:8px 8px 8px 8px;
	text-shadow:0 1px 0 #ff0000;
}
.leftcolumn a:link{text-decoration:none ; color:#ffffff ;}
.leftcolumn a:visited {text-decoration:none ; color:#ffffff ;}
.leftcolumn a:hover {text-decoration:underline ; color:#cccccc;}
.leftcolumn a:active {text-decoration:none ; color:#cccccc;}
.menu_title{
	font-size:15px;
	margin:10px 0px 10px 10px;
}
.menu_message{
	margin:0px 0 0 20px;
	font-size:14px;
	line-height:14px;
	font-family:Arial,Helvetica,Sans-serif;
	color:#fff;
	-moz-border-radius:8px 8px 0 0;
	-khtml-border-radius:8px 8px 0 0;
	-webkit-border-radius:8px 8px 0 0;
	border-radius:8px 8px 8px 8px;
	text-shadow:0 1px 0 #000;}
.menu_message a:link{text-decoration:none ; color:#ffffff;}
.menu_message a:visited {text-decoration:none ; color:#ffffff;}
.menu_message a:hover {text-decoration:underline ; color:#cccccc;}
.menu_message a:active {text-decoration:none ; color:#cccccc;}
#midcolumn{}
.midcolumn{
	width:450px;
	background-color:#333333;
	padding:10px 10px 10px 10px;
	font-size:14px;
	line-height:14px;
	font-family:Arial,Helvetica,Sans-serif;
	color:#fff;
	-moz-border-radius:8px 8px 0 0;
	-khtml-border-radius:8px 8px 0 0;
	-webkit-border-radius:8px 8px 0 0;
	border-radius:8px 8px 8px 8px;
	text-shadow:0 1px 0 #000;
	float:left;
}
.midcolumn a:link{text-decoration:none ; color:#cccccc;}
.midcolumn a:visited {text-decoration:none ; color:#cccccc;}
.midcolumn a:hover {text-decoration:underline ; color:#ffff00;}
.midcolumn a:active {text-decoration:none ; color:#ffff00;}
.hr{border-top:1px dotted #ffffff;height:1px; overflow:hidden;}
.chapter{
}
.chapter a:link{text-decoration:underline ; color:#cccccc;}
.chapter a:visited {text-decoration:none ; color:#cccccc;}
.chapter a:hover {text-decoration:underline ; color:#ffff00;}
.chapter a:active {text-decoration:none ; color:#ffff00;}
</style>

<script>
var openid = null;
var showid = null;
var columnid = "startcolumn";
function openMenu(id){
	if(openid)$('#'+openid).slideToggle('fast');
	$("#leftcolumn").animate({width: '+255px'}, "fast");
	$("#midcolumn").animate({width: '+320px'}, "fast");
	$('#'+id).slideToggle('fast');
	openid=id;
}
function closeMenu(id){
	$("#leftcolumn").animate({width: '+135px'}, "fast");
	$("#midcolumn").animate({width: '+440px'}, "fast");
	$('#'+openid).slideToggle('fast');
	if(openid){
		showid = openid;
		openid=null;
	}else{
		var ids = id.split("_");
		showid = ids[0];
	}
	$("#"+columnid).hide("fast");
	$("#"+id).show("fast");
	columnid = id;
}
function returnMenu(){
	openMenu(showid);
}
</script>
</head>
<body>

<div style="position:relative;width:100%;margin-top:0px;margin-bottom:0px;">
<a id="top"></a>
<div style="width:610px;margin-top:5px;margin-left:auto;margin-right:auto">
<div style="width:610px;height:105px;margin:0;padding:0;">
<div style="width:340px;text-align:left;float:left;">
	<a href="javascript:void(0)" onclick="self.location.reload();"><img width="100" height="100" src="" alt="lufylegend.js开源引擎" style="border:0;margin-top:5px;" /></a>
</div>
</div>
<hr style="height:2px;color:#555555">
<div style="width:610px;position:relative;margin-left:auto;margin-right:auto;margin:0px;padding:0px;overflow:hidden"></div>
<div style="width:610px;padding:0px;margin:0px;">
<div id="leftcolumn" class="leftcolumn">
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('process_start')" style='font-weight:bold;'>基本流程</a></div>
<div id="process_start" class="menu_message" style="display:none;">
<a href="javascript:void(0)" onclick="closeMenu('startcolumn')">lufylegend引擎简介</a><br>
<a href="javascript:void(0)" onclick="closeMenu('process')" >lufylegend引擎的使用流程</a><br>
<a href="javascript:void(0)" onclick="closeMenu('init')" >init()初始化引擎</a><br>
<a href="javascript:void(0)" onclick="closeMenu('keyword')" >lufylegend引擎中的关键字</a><br>
<a href="javascript:void(0)" onclick="closeMenu('readonly')" >lufylegend引擎的只读属性</a><br>
<a href="javascript:void(0)" onclick="closeMenu('readandwrite')" >lufylegend引擎的可操作属性</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('function')" style='font-weight:bold;'>函数</a></div>
<div id="function" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('L_trace')" >trace</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_base')" >base</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_addChild')" >addChild</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_removeChild')" >removeChild</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('FULL_SCREEN')" style='font-weight:bold;'>全屏设置</a></div>
<div id="FULL_SCREEN" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LStage_FULL_SCREEN')" >全屏设置</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LStageAlign_LStageAlign')" >LStageAlign</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LSystem')" style='font-weight:bold;'>LSystem</a></div>
<div id="LSystem" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LSystem_sleep')" >sleep()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSystem_screen')" >screen()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LGlobal')" style='font-weight:bold;'>LGlobal</a></div>
<div id="LGlobal" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LGlobal_setDebug')">setDebug()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGlobal_divideCoordinate')" >divideCoordinate()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGlobal_hitTestArc')" >hitTestArc()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGlobal_hitTestRect')" >hitTestRect()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGlobal_hitTest')" >hitTest()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGlobal_hitPolygon')" >hitPolygon()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGlobal_setFrameRate')" >setFrameRate()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGlobal_setStageSize')" >setStageSize()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGlobal_resize')" >resize()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LStage')" style='font-weight:bold;'>LStage</a></div>
<div id="LStage" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LStage_LStage')" >LStage</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LObject')" style='font-weight:bold;'>LObject</a></div>
<div id="LObject" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LObject_callParent')">callParent()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LEventDispatcher')" style='font-weight:bold;'>LEventDispatcher</a></div>
<div id="LEventDispatcher" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_addEventListener')">addEventListener()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_removeEventListener')">removeEventListener()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_dispatchEvent')">dispatchEvent()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_hasEventListener')">hasEventListener()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LDisplayObject')" style='font-weight:bold;'>LDisplayObject</a></div>
<div id="LDisplayObject" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LDisplayObject_setShadow')">setShadow()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LDisplayObject_getRootCoordinate')">getRootCoordinate()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LDisplayObject_getBounds')">getBounds()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LDisplayObject_getDataURL')">getDataURL()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LInteractiveObject')" style='font-weight:bold;'>LInteractiveObject</a></div>
<div id="LInteractiveObject" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LInteractiveObject_LInteractiveObject')">LInteractiveObject()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LLoader')" style='font-weight:bold;'>LLoader</a></div>
<div id="LLoader" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LLoader_load')">load()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LLoader_addEventListener')">addEventListener()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LURLLoader')" style='font-weight:bold;'>LURLLoader</a></div>
<div id="LURLLoader" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LURLLoader_load')">load()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LURLLoader_addEventListener')">addEventListener()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LBitmapData')" style='font-weight:bold;'>LBitmapData</a></div>
<div id="LBitmapData" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_LBitmapData')">LBitmapData()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_setCoordinate')">setCoordinate()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_setProperties')">setProperties()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_getPixel')">getPixel()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_getPixels')">getPixels()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_setPixel')">setPixel()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_setPixels')">setPixels()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_lock')">lock()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_unlock')">unlock()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_draw')">draw()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_clone')">clone()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LBitmap')" style='font-weight:bold;'>LBitmap</a></div>
<div id="LBitmap" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LBitmap_LBitmap')">LBitmap()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmap_getWidth')">getWidth()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmap_getHeight')">getHeight()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmap_remove')">remove()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBitmap_clone')">clone()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LShape')" style='font-weight:bold;'>LShape</a></div>
<div id="LShape" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LShape_LShape')">LShape()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LSprite')" style='font-weight:bold;'>LSprite</a></div>
<div id="LSprite" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LSprite_LSprite')">LSprite()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_addChild')">addChild()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_addChildAt')">addChildAt()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_removeChild')">removeChild()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_getChildAt')">getChildAt()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_getChildIndex')">getChildIndex()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_setChildIndex')">setChildIndex()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_removeChildAt')">removeChildAt()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_removeAllChild')">removeAllChild()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_addEventListener')">addEventListener()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_removeEventListener')">removeEventListener()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_die')">die()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_addBodyCircle')">addBodyCircle()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_addBodyPolygon')">addBodyPolygon()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_addBodyVertices')">addBodyVertices()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_clearBody')">clearBody()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_setBodyMouseJoint')">setBodyMouseJoint()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_setRotate')">setRotate()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_clone')">clone()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_remove')">remove()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_startDrag')">startDrag()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LSprite_stopDrag')">stopDrag()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LBlendMode')" style='font-weight:bold;'>LBlendMode</a></div>
<div id="LBlendMode" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LBlendMode_LBlendMode')">LBlendMode</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LGraphics')" style='font-weight:bold;'>LGraphics</a></div>
<div id="LGraphics" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_LGraphics')">LGraphics()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_drawLine')">drawLine()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_drawArc')">drawArc()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_drawRect')">drawRect()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_drawRoundRect')">drawRoundRect()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_drawVertices')">drawVertices()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_drawTriangles')">drawTriangles()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_beginBitmapFill')">beginBitmapFill()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_add')">add()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LGraphics_clone')">clone()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LButton')" style='font-weight:bold;'>LButton</a></div>
<div id="LButton" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LButton_LButton')">LButton()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LButton_clone')">clone()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LTextField')" style='font-weight:bold;'>LTextField</a></div>
<div id="LTextField" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LTextField_LTextField')">LTextField()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTextField_setType')">setType()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTextField_setWordWrap')">setWordWrap()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTextField_setMultiline')">setMultiline()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTextField_getWidth')">getWidth()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTextField_getHeight')">getHeight()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTextField_wind')">wind()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTextField_clone')">clone()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTextField_remove')">remove()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LDropShadowFilter')" style='font-weight:bold;'>LDropShadowFilter</a></div>
<div id="LDropShadowFilter" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LDropShadowFilter_LDropShadowFilter')">LDropShadowFilter()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LAnimation')" style='font-weight:bold;'>LAnimation</a></div>
<div id="LAnimation" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LAnimation_LAnimation')">LAnimation()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimation_setAction')">setAction()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimation_getAction')">getAction()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimation_onframe')">onframe()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimation_addEventListener')">addEventListener()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimation_removeEventListener')">removeEventListener()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimation_clone')">clone()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LAnimationTimeline')" style='font-weight:bold;'>LAnimationTimeline</a></div>
<div id="LAnimationTimeline" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LAnimationTimeline_LAnimationTimeline')">LAnimationTimeline()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimationTimeline_setLabel')">setLabel()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimationTimeline_play')">play()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimationTimeline_stop')">stop()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimationTimeline_gotoAndPlay')">gotoAndPlay()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimationTimeline_gotoAndStop')">gotoAndStop()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimationTimeline_addFrameScript')">addFrameScript()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimationTimeline_removeFrameScript')">removeFrameScript()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAnimationTimeline_clone')">clone()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LMedia')" style='font-weight:bold;'>LMedia</a></div>
<div id="LMedia" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LMedia_LMedia')">LMedia()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMedia_load')">load()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMedia_play')">play()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMedia_stop')">stop()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMedia_close')">close()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMedia_setVolume')">setVolume()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMedia_getVolume')">getVolume()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMedia_addEventListener')">addEventListener()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMedia_removeEventListener')">removeEventListener()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LSound')" style='font-weight:bold;'>LSound</a></div>
<div id="LSound" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LSound_LSound')">LSound()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LVideo')" style='font-weight:bold;'>LVideo</a></div>
<div id="LVideo" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LVideo_LVideo')">LVideo()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LLoadManage')" style='font-weight:bold;'>LLoadManage</a></div>
<div id="LLoadManage" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LLoadManage_load')">load()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LTweenLite')" style='font-weight:bold;'>LTweenLite</a></div>
<div id="LTweenLite" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LTweenLite_to')">LTweenLite.to()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTweenLite_remove')">LTweenLite.remove()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTweenLite_removeAll')">LTweenLite.removeAll()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LRectangle')" style='font-weight:bold;'>LRectangle</a></div>
<div id="LRectangle" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_LRectangle')">LRectangle()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_clone')">clone()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_contains')">contains()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_containsRect')">containsRect()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_equals')">equals()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_inflate')">inflate()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_intersection')">intersection()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_isEmpty')">isEmpty()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_offset')">offset()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_setEmpty')">setEmpty()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_setTo')">setTo()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_toString')">toString()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRectangle_union')">union()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LPoint')" style='font-weight:bold;'>LPoint</a></div>
<div id="LPoint" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LPoint_LPoint')">LPoint()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_distance')">distance()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_distance2')">distance2()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_interpolate')">interpolate()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_polar')">polar()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_length')">length()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_add')">add()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_clone')">clone()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_setTo')">setTo()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_copyFrom')">copyFrom()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_equals')">equals()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_normalize')">normalize()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_offset')">offset()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LPoint_subtract')">subtract()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LMath')" style='font-weight:bold;'>LMath</a></div>
<div id="LMath" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LMath_trim')">trim()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMath_leftTrim')">leftTrim()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMath_rightTrim')">rightTrim()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMath_numberFormat')">numberFormat()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMath_isString')">isString()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMath_isNumber')">isNumber()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMath_isInt')">isInt()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LAjax')" style='font-weight:bold;'>LAjax</a></div>
<div id="LAjax" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LAjax_get')">get()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LAjax_post')">post()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LStageWebView')" style='font-weight:bold;'>LStageWebView</a></div>
<div id="LStageWebView" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LStageWebView_LStageWebView')">LStageWebView()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LStageWebView_loadURL')">loadURL()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LStageWebView_setViewPort')">setViewPort()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LStageWebView_show')">show()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LStageWebView_die')">die()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('FPS')" style='font-weight:bold;'>FPS</a></div>
<div id="FPS" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('FPS_FPS')">FPS()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LMouseEvent')" style='font-weight:bold;'>鼠标事件</a></div>
<div id="LMouseEvent" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('L_MOUSE_DOWN')">MOUSE_DOWN</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_MOUSE_UP')">MOUSE_UP</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_MOUSE_MOVE')">MOUSE_MOVE</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_MOUSE_OVER')">MOUSE_OVER</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_MOUSE_OUT')">MOUSE_OUT</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_DOUBLE_CLICK')">DOUBLE_CLICK</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_MOUSE_LMouseEventContainer')">鼠标容器</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_MOUSE_LMultitouch')">多点触摸</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LKeyboardEvent')" style='font-weight:bold;'>键盘事件</a></div>
<div id="LKeyboardEvent" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('L_KEY_DOWN')">KEY_DOWN</a><br>
<a href="javascript:void(0)" onclick="closeMenu('L_KEY_UP')">KEY_UP</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LEventEnterFrame')" style='font-weight:bold;'>时间轴事件</a></div>
<div id="LEventEnterFrame" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('L_ENTER_FRAME')">ENTER_FRAME</a><br>
</div>
<hr>
<hr>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LLibrary')" style='font-weight:bold;'>引擎附加类库</a></div>
<div id="LLibrary" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LLibrary_LLibrary')">使用方法</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LBox2d')" style='font-weight:bold;'>LBox2d</a></div>
<div id="LBox2d" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_LBox2d')">LBox2d()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_setEvent')">setEvent()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_setDistanceJoint')">setDistanceJoint()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_setRevoluteJoint')">setRevoluteJoint()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_setPulleyJoint')">setPulleyJoint()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_setPrismaticJoint')">setPrismaticJoint()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_setGearJoint')">setGearJoint()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_setLineJoint')">setLineJoint()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_setWeldJoint')">setWeldJoint()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LBox2d_setBodyMouseJoint')">setBodyMouseJoint()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LTransitionManager')" style='font-weight:bold;'>LTransitionManager</a></div>
<div id="LTransitionManager" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LTransitionManager_LTransitionManager')">LTransitionManager()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTransitionManager_start')">start()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LTransitionManager_startTransition')">startTransition()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LoadingSample')" style='font-weight:bold;'>LoadingSample</a></div>
<div id="LoadingSample" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LoadingSample1_LoadingSample1')">LoadingSample1()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LoadingSample2_LoadingSample2')">LoadingSample2()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LoadingSample3_LoadingSample3')">LoadingSample3()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LoadingSample4_LoadingSample4')">LoadingSample4()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LoadingSample5_LoadingSample5')">LoadingSample5()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LoadingSample_setProgress')">setProgress()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LQuadTree')" style='font-weight:bold;'>LQuadTree</a></div>
<div id="LQuadTree" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LQuadTree_LQuadTree')">LQuadTree()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LQuadTree_createChildren')">createChildren()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LQuadTree_hasChildren')">hasChildren()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LQuadTree_clear')">clear()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LQuadTree_add')">add()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LQuadTree_remove')">remove()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LQuadTree_isIn')">isIn()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LQuadTree_getDataInRect')">getDataInRect()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LFlash')" style='font-weight:bold;'>LFlash</a></div>
<div id="LFlash" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LFlash_SpriteSheetConvert')">SpriteSheetConvert()</a><br>
</div>
<hr>
<hr>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LMvc')" style='font-weight:bold;'>引擎专用MVC框架</a></div>
<div id="LMvc" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LMvc_LMvc')">LMVC简介和使用方法</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMvc_Controller')">控制器</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMvc_Model')">模型</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMvc_View')">视图</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMvc_Helper')">辅助函数</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LMvc_Library')">创建你自己的类库</a><br>
</div>
<hr>
<hr>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LUI')" style='font-weight:bold;'>引擎专用UI组件</a></div>
<div id="LUI" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LUI_LUI')">UI简介和使用方法</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LButtonSample1')" style='font-weight:bold;'>LButtonSample1</a></div>
<div id="LButtonSample1" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LButtonSample1_LButtonSample1')">LButtonSample1()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LButtonSample2')" style='font-weight:bold;'>LButtonSample2</a></div>
<div id="LButtonSample2" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LButtonSample2_LButtonSample2')">LButtonSample2()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LRadio')" style='font-weight:bold;'>LRadio</a></div>
<div id="LRadio" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LRadio_LRadio')">LRadio()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRadio_setChildRadio')">setChildRadio()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRadio_push')">push()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LRadio_setValue')">setValue()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LRadioChild')" style='font-weight:bold;'>LRadioChild</a></div>
<div id="LRadioChild" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LRadioChild_LRadioChild')">LRadioChild()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LCheckBox')" style='font-weight:bold;'>LCheckBox</a></div>
<div id="LCheckBox" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LCheckBox_LCheckBox')">LCheckBox()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LCheckBox_setChecked')">setChecked()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LComboBox')" style='font-weight:bold;'>LComboBox</a></div>
<div id="LComboBox" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LComboBox_LComboBox')">LComboBox()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LComboBox_setChild')">setChild()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LScrollbar')" style='font-weight:bold;'>LScrollbar</a></div>
<div id="LScrollbar" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LScrollbar_LScrollbar')">LScrollbar()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LScrollbar_getScrollY')">getScrollY()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LScrollbar_getScrollX')">getScrollX()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LScrollbar_setScrollY')">setScrollY()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LScrollbar_setScrollX')">setScrollX()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LScrollbar_scrollToTop')">scrollToTop()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LScrollbar_scrollToBottom')">scrollToBottom()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LScrollbar_scrollToLeft')">scrollToLeft()</a><br>
<a href="javascript:void(0)" onclick="closeMenu('LScrollbar_scrollToRight')">scrollToRight()</a><br>
<br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LRange')" style='font-weight:bold;'>LRange</a></div>
<div id="LRange" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LRange_LRange')">LRange()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LWindow')" style='font-weight:bold;'>LWindow</a></div>
<div id="LWindow" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LWindow_LWindow')">LWindow()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LMenubar')" style='font-weight:bold;'>LMenubar</a></div>
<div id="LMenubar" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LMenubar_LMenubar')">LMenubar()</a><br>
</div>
<div class="menu_title"><a href="javascript:void(0)" onclick="openMenu('LMessageBox')" style='font-weight:bold;'>LMessageBox</a></div>
<div id="LMessageBox" style="display:none;" class="menu_message">
<a href="javascript:void(0)" onclick="closeMenu('LMessageBox_show')">show()</a><br>
</div>



</div>
<!-- midcolumn start -->
<div id="midcolumn" class="midcolumn">
<!-- startcolumn start -->
<div id="startcolumn">
<h2>lufylegend 开源引擎 API文档</h2>
<h4>最终更新于2014/05/13</h4>
<div>
<img src="" alt="lufylegend" width="100px" height="100px">
<p>lufylegend是一个HTML5开源引擎,它实现了利用仿ActionScript3.0的语法进行HTML5的开发，
包含了LSprite，LBitmapData，LBitmap，LLoader，LURLLoader，LTextField，LEvent等多个AS开发人员熟悉的类， 
支持Google Chrome，Firefox，Opera，IE9，IOS，Android等多种热门环境。
利用lufylegend可以轻松的使用面向对象编程，并且可以配合Box2dWeb制作物理游戏， 另外它还内置了LTweenLite缓动类等非常实用的功能,
现在开始使用它吧，它可以让你更快的进入HTML5的世界！</p>
</div>
<div class="hr"></div>
<h3>lufylegend引擎下载</h3>
<p><a href="http://lufylegend.com/lufylegend" target="_blank">http://lufylegend.com/lufylegend</a></p>
<div class="hr"></div>
<h3>lufylegend引擎论坛</h3>
<p><a href="http://lufylegend.com/forum" target="_blank">http://lufylegend.com/forum</a></p>
<div class="hr"></div>

<h3>联系作者</h3>
<div>
<h4>邮箱</h4>
<p><a href="mailto:lufy.legend@gmail.com">lufy.legend@gmail.com</a></p>
<h4>博客</h4>
<p><a href="http://blog.csdn.net/lufy_legend" target="_blank">http://blog.csdn.net/lufy_legend</a></p>
</div>

</div>
<!-- startcolumn end -->


<!-- process start -->
<div id="process" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>基本流程</a></div>
<h2>lufylegend库件的使用流程</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>lufylegend库件的使用方法的使用非常简单：</p>
<p>1，从<a href="http://lufylegend.com/lufylegend" target="_blank">http://lufylegend.com/lufylegend</a>下载库件最新版。</p>
<p>压缩包内包含lufylegend-x.x.x.js和lufylegend-x.x.x.min.js两个完整版本，还有lufylegend-x.x.x.simple.js和lufylegend-x.x.x.simple.min.js两个缩减版本，***.min是去除了回车和空格的压缩版本。</p>
<p>simple缩减版本与完整版本的区别在于，将LBox2d，LQuadTree，LTransitionManager，LoadingSample1，LoadingSample2，LoadingSample3，LoadingSample4，LoadingSample5等几个类与引擎的常用部分分离，缩减了引擎的体积。如果用到了被分离的部分的功能的话，可以进行手动加载。</p>
<p>2，在html中将库件引入。</p>
<p>3，调用init函数，初始化库件。</p>
<div class="hr"></div>
<h3>■举例：</h3>
<p>
<pre  class='brush: html' style="background:#ffffff;">&lt;!DOCTYPE html>
&lt;html>
&lt;head>
&lt;meta charset="UTF-8">
&lt;title>demo&lt;/title>
&lt;/head>
&lt;body>
&lt;div id="mylegend">loading……&lt;/div>
&lt;script type="text/javascript" src="../lufylegend-x.x.x.min.js">&lt;/script> 
&lt;script>
init(50,"mylegend",800,480,main);
function main(){
	alert("感谢您使用lufylegend库件");
}
&lt;/script>
&lt;/body>
&lt;/html>
</pre>
</p>
</div>
<!-- process end -->


<!-- init start -->
<div id="init" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>基本流程</a></div>
<h2>init(
<br />&nbsp;&nbsp;&nbsp;&nbsp;speed,
<br />&nbsp;&nbsp;&nbsp;&nbsp;divid,
<br />&nbsp;&nbsp;&nbsp;&nbsp;width,
<br />&nbsp;&nbsp;&nbsp;&nbsp;height,
<br />&nbsp;&nbsp;&nbsp;&nbsp;completeFunc,
<br />&nbsp;&nbsp;&nbsp;&nbsp;type
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>库件初始化</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>speed:游戏速度设定,每次页面刷新间隔（单位毫秒）</p>
<p>divid:传入一个div的id，库件进行初始化的时候，会自动将canvas加入到此div内部</p>
<p>width:游戏界面宽</p>
<p>height:游戏界面高</p>
<p>completeFunc:游戏初始化后，调用此函数</p>
<p>type：当为null时，会先进行页面的onload操作，如果你的init函数调用是在onload之后，那么需要将此参数设为LEvent.INIT</p>
</div>
<!-- init end -->


<!-- keyword start -->
<div id="keyword" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>基本流程</a></div>
<h2>lufylegend引擎中的关键字</h2>
<p>在使用lufylegend库件时，不可以使用这些关键字作为变量</p>
<p>LEvent, LMouseEvent, LMouseEvent, LAccelerometerEvent, LMath, LGlobal, trace, die, addChild, removeChild, removeAllChild, 
base, LLoader, LURLLoader, LRectangle, LQuadTree, LGraphics, LBox2d, LSprite, LButton, LTextFieldType, LTextField, LLabel, 
LBitmap, LBitmapData, LAnimation, LAnimationMovie, LDisplay, LoadingSample1, LoadingSample2, LoadingSample3, $LoadManage, 
LEasing, Quad, Cubic, Quart, Quint, Sine, Strong, Expo, Circ, Elastic, Back, Bounce, $LTweenLiteChild, $LTweenLite, LLoadManage, 
LTweenLite, LEGEND_FILE_PHP, OS_PC, OS_IPHONE, OS_IPOD, OS_IPAD, OS_ANDROID, STR_ZERO, NONE, SUPER, UNDEFINED</p>
</div>
<!-- keyword end -->


<!-- readonly start -->
<div id="readonly" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>基本流程</a></div>
<h2>lufylegend引擎的只读属性</h2>
<p>这些属性经常会用到，但是它们是不可修改的</p>
<p>LGlobal.canvasObj：canvas标签</p>
<p>LGlobal.canvas：canvas标签的getContext("2d")</p>
<p>LGlobal.width：canvas的宽</p>
<p>LGlobal.height：canvas的高</p>
<p>LGlobal.canTouch：是否为平板电脑或智能手机</p>
<p>LGlobal.os：当前的OS，它的值可以是OS_IPHONE，OS_IPOD，OS_IPAD，OS_ANDROID，OS_PC</p>
<p>LGlobal.ios：是否为ios系列</p>
<p>LGlobal.android：是否为android系列</p>
</div>
<!-- readonly end -->


<!-- readandwrite start -->
<div id="readandwrite" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>基本流程</a></div>
<h2>lufylegend引擎的可操作属性</h2>
<p>LGlobal.preventDefault：移动开发中，当点击canvas的时候是否禁止滚屏，默认为true(禁止)</p>
<p>LGlobal.stageScale：舞台的缩放模式，包括LStageScaleMode.EXACT_FIT，LStageScaleMode.SHOW_ALL和LStageScaleMode.NO_SCALE三种类型。</p>
<p>LGlobal.backgroundColor：舞台的背景色，默认为透明。</p>
<p>LGlobal.aspectRatio：该属性只适用于移动端，用于限制横屏LANDSCAPE或者竖屏PORTRAIT， 默认值为NONE，该属性的设定必须在init函数被调用之前。</p>
<p>LGlobal.destroy：LGlobal.destroy的值为true的时候，在使用removeChild函数的时候会自动清空对象本身，false的时候，在使用removeChild函数的时候则不会自动清空对象本身，为了更好的内存回收，1.8.3版将LGlobal.destroy的值默认设置为true。</p>
<p>LGlobal.keepClear：是否每贞清除整个画面后再重绘，默认值为true，设置为false后可以在一定程度上提高效率。</p>
</div>
<!-- readandwrite end -->


<!-- trace start -->
<div id="L_trace" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>函数</a></div>
<h2>trace(...param)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>debug输出</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>...param:可以同时传入多个字符串或数字，用逗号隔开</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>此函数用于测试，会将传入的字符串输出到游戏界面的下方，只有在debug模式下有效，否则调用无效，参数可以是任意个，输出的时候每个参数的输出为一行</p>
<div class="hr"></div>
<h3>■举例：</h3>
<p>
<pre  class='brush: html' style="background:#ffffff;">&lt;!DOCTYPE html> 
&lt;html> 
&lt;head> 
&lt;metacharset="UTF-8"> 
&lt;title>demo&lt;/title> 
&lt;/head> 
&lt;body> 
&lt;div id="mylegend">loading……&lt;/div> 
&lt;script type="text/javascript"src="../lufylegend-x.x.x.min.js">&lt;/script> 
&lt;script> 
init(50,"mylegend",800,480,main); 
function main(){ 
	trace("debug输出函数测试"，"debug输出函数测试2"，"debug输出函数测试3"); 
} 
&lt;/script> 
&lt;/body> 
&lt;/html>
</pre>
</p>
</div>
<!-- trace end -->


<!-- base start -->
<div id="L_base" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>函数</a></div>
<h2>继承base(derive,baseSprite,baseArgs)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>javascript中没有继承，此函数可以实现继承</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>derive:需要继承的类</p>
<p>baseSprite:被继承的类</p>
<p>baseArgs:传给被继承类的参数</p>
<div class="hr"></div>
<h3>■举例说明：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">function Myclass(){ 
	base(this,LSprite,[]);
}
</pre>
</p>
<p>因为LSprite的构造器不需要参数，所以最后的参数传了一个空数组</p>
</div>
<!-- base end -->


<!-- L_addChild start -->
<div id="L_addChild" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>函数</a></div>
<h2>addChild(DisplayObject)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>lufylegend引擎实现了游戏的层结构，此函数将可显示的对象(LSprite,LBitmap等)加入到游戏最底层画板上,相当于是加到AS3中的stage上。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>DisplayObject:对象</p>
<div class="hr"></div>
<h3>■举例说明：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">var backLayer = LSprite();
addChild(backLayer);
</pre>
</p>
</div>
<!-- L_addChild end -->


<!-- L_removeChild start -->
<div id="L_removeChild" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>函数</a></div>
<h2>removeChild(DisplayObject)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将可显示的对象移除游戏最底层画板</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>DisplayObject:对象</p>
<div class="hr"></div>
<h3>■举例说明：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">//加入对象
var backLayer = LSprite();
addChild(backLayer); 
//移除对象 
removeChild(backLayer);
</pre>
</p>
</div>
<!-- L_removeChild end -->


<!-- LStage_LStage start -->
<div id="LStage_LStage" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LStage</a></div>
<h2>LStage</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>LStage=LGlobal;</p>
<p>LStage等于LGlobal，使用LGlobal的地方也可以使用LStage;</p>
</div>
<!-- LStage_LStage end -->


<!-- LSystem_sleep start -->
<div id="LSystem_sleep" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSystem</a></div>
<h2>sleep(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p> 执行挂起一段时间</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value:毫秒数</p>
</div>
<!-- LSystem_sleep end -->


<!-- LSystem_screen start -->
<div id="LSystem_screen" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSystem</a></div>
<h2>screen(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>1.8.0版本之前，可以用这个函数来设置viewport标签的值，1.8.0版本开始直接通过GPU缩放来设置全屏。</p>
<div class="hr"></div>
<h3>■参考：</h3>
<p><a href="javascript:void(0)" onclick="closeMenu('LStage_FULL_SCREEN')">全屏设置</a></p>
</div>
<!-- LSystem_screen end -->

<!-- LStageAlign_LStageAlign start -->
<div id="LStageAlign_LStageAlign" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>全屏设置</a></div>
<h2>LStageAlign</h2>
<div class="hr"></div>
<p>当设置舞台的缩放模式LGlobal.stageScale为LStageScaleMode.SHOW_ALL的时候，可以设置LGlobal.align属性为下面中的任意一种：</p>
<p>LStageAlign.TOP:[静态] 指定舞台靠顶部对齐。</p>
<p>LStageAlign.TOP_LEFT:[静态] 指定舞台靠左上角对齐。</p>
<p>LStageAlign.TOP_RIGHT:[静态] 指定舞台靠右上角对齐。</p>
<p>LStageAlign.TOP_MIDDLE:[静态] 指定舞台靠上方中间对齐。</p>
<p>LStageAlign.BOTTOM:[静态] 指定舞台靠底部对齐。</p>
<p>LStageAlign.BOTTOM_LEFT:[静态] 指定舞台靠左下角对齐。</p>
<p>LStageAlign.BOTTOM_RIGHT:[静态] 指定舞台靠右下角对齐。</p>
<p>LStageAlign.BOTTOM_MIDDLE:[静态] 指定舞台靠下方中间对齐。</p>
<p>LStageAlign.LEFT:[静态] 指定舞台靠左对齐。</p>
<p>LStageAlign.RIGHT:[静态] 指定舞台靠右对齐。</p>
<p>LStageAlign.MIDDLE:[静态] 指定舞台靠中间对齐。</p>
</div>
<!-- LStageAlign_LStageAlign end -->


<!-- setDebug start -->
<div id="LGlobal_setDebug" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGlobal</a></div>
<h2>LGlobal.setDebug(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>debug模式设定</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value:debug参数</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>debug参数设为true的时候，进入debug状态，设为false时，结束debug状态</p>
</div>
<!-- setDebug end -->


<!-- LGlobal_divideCoordinate start -->
<div id="LGlobal_divideCoordinate" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGlobal</a></div>
<h2>LGlobal.divideCoordinate(
<br />&nbsp;&nbsp;&nbsp;&nbsp;width,
<br />&nbsp;&nbsp;&nbsp;&nbsp;height,
<br />&nbsp;&nbsp;&nbsp;&nbsp;row,
<br />&nbsp;&nbsp;&nbsp;&nbsp;col
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>divideCoordinate函数是将传入的宽和高，按照行数和列数进行拆分计算，会得到一个2维数组。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>width:宽</p>
<p>height:高</p>
<p>row:行数</p>
<p>col:列数</p>
<div class="hr"></div>
<h3>■举例说明：</h3>
<p>下面是将一个利用divideCoordinate函数进行拆分，得到2维数组，再利用这个2维数组来实现分解图片，播放动画的过程。</p>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">&lt;!DOCTYPE HTML>
&lt;html>
&lt;head>
	&lt;meta charset="utf-8" />
	&lt;script type="text/javascript"
		src="../../lufylegend-x.x.x.js">&lt;/script> 
&lt;/head>
&lt;body>
&lt;div id="mylegend">loading...&lt;/div>
&lt;script type="text/javascript">
var loader,anime,layer;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("chara.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var list = LGlobal.divideCoordinate(256,256,4,4);
    layer = new LSprite();
    addChild(layer);
	anime = new LAnimation(layer,bitmapdata,list);
	layer.addEventListener(LEvent.ENTER_FRAME,onframe);
}  
function onframe(){
	anime.onframe();
}
&lt;/script>
&lt;/body>
&lt;/html>
</pre>
</p>
</div>
<!-- LGlobal_divideCoordinate end -->


<!-- hitTestArc start -->
<div id="LGlobal_hitTestArc" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGlobal</a></div>
<h2>LGlobal.hitTestArc(
<br />&nbsp;&nbsp;&nbsp;&nbsp;objectA,
<br />&nbsp;&nbsp;&nbsp;&nbsp;objectB,
<br />&nbsp;&nbsp;&nbsp;&nbsp;objectAR,
<br />&nbsp;&nbsp;&nbsp;&nbsp;objectBR
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>检测两个圆形区域是否发生碰撞</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>objectA:圆形区域A</p>
<p>objectB:圆形区域B</p>
<p>objectAR:圆形区域A的半径，不设定则为默认</p>
<p>objectBR:圆形区域B的半径，不设定则为默认</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>如果想指定所检测圆形区域的半径，就需要指定第3个和第4个参数。</p>
</div>
<!-- hitTestArc end -->


<!-- hitTestRect start -->
<div id="LGlobal_hitTestRect" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGlobal</a></div>
<h2>LGlobal.hitTestRect(
<br />&nbsp;&nbsp;&nbsp;&nbsp;objectA,
<br />&nbsp;&nbsp;&nbsp;&nbsp;objectB,
<br />&nbsp;&nbsp;&nbsp;&nbsp;vecA,
<br />&nbsp;&nbsp;&nbsp;&nbsp;vecB
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>检测两个矩形区域是否发生碰撞</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>objectA:矩形区域A</p>
<p>objectB:矩形区域B</p>
<p>vecA:矩形区域A的大小，不设定则为默认</p>
<p>vecB:矩形区域B的大小，不设定则为默认</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>如果想指定所检测矩形区域的大小，就需要指定第3个和第4个参数。</p>
<p><b>※</b>函数 <b> hitTest </b> 和 函数 <b> hitTestRect </b>完全一样</p>
</div>
<!-- hitTestRect end -->


<!-- hitTest start -->
<div id="LGlobal_hitTest" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGlobal</a></div>
<h2>LGlobal.hitTest(
<br />&nbsp;&nbsp;&nbsp;&nbsp;objectA,
<br />&nbsp;&nbsp;&nbsp;&nbsp;objectB,
<br />&nbsp;&nbsp;&nbsp;&nbsp;vecA,
<br />&nbsp;&nbsp;&nbsp;&nbsp;vecB
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>检测两个矩形区域是否发生碰撞</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>objectA:矩形区域A</p>
<p>objectB:矩形区域B</p>
<p>vecA:矩形区域A的大小，不设定则为默认</p>
<p>vecB:矩形区域B的大小，不设定则为默认</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>如果想指定所检测矩形区域的大小，就需要指定第3个和第4个参数。</p>
<p><b>※</b>函数 <b> hitTest </b> 和 函数 <b> hitTestRect </b>完全一样</p>
</div>
<!-- hitTest end -->


<!-- LGlobal_hitPolygon start -->
<div id="LGlobal_hitPolygon" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGlobal</a></div>
<h2>LGlobal.hitPolygon(list,x,y)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>检测点和多边形是否发生碰撞</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>list:要检测的多边形的顶点数组</p>
<p>x:点的x坐标</p>
<p>y:点的y坐标</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"legend",480,288,main);
var vertices = [[10,10],[50,100],[100,70]];
function main(){ 
	LGlobal.setDebug(true);
	var baseLayer = new LSprite();
	addChild(baseLayer);
	baseLayer.graphics.drawRect(1,"#ffffff",[0,0,LGlobal.width,LGlobal.height],true,"#ffffff");
	baseLayer.addEventListener(LMouseEvent.MOUSE_DOWN,ondown);
	
	var backLayer = new LSprite();
	baseLayer.addChild(backLayer);
	backLayer.graphics.drawVertices(1,"#ff0000",vertices,true,"#880088");	
}  
function ondown(e){
	if(LGlobal.hitPolygon(vertices,e.offsetX,e.offsetY)){
		trace("OK");
	}else{
		trace("NO");
	}
}
</pre>
</p>
</div>
<!-- LGlobal_hitPolygon end -->


<!-- setFrameRate start -->
<div id="LGlobal_setFrameRate" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGlobal</a></div>
<h2>LGlobal.setFrameRate(speed)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>重新设定游戏的帧速</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>speed:帧速</p>
</div>
<!-- setFrameRate end -->

<!-- setStageSize start -->
<div id="LGlobal_setStageSize" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGlobal</a></div>
<h2>LGlobal.setStageSize(width,height)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>使用GPU缩放，自由将当前游戏舞台缩放为所设置游戏的大小。</p>
<p>※此函数必须在引擎初始化init结束之后，可以写在init的回调函数中，或者回调函数之后。</p>
</div>
<!-- setStageSize end -->

<!-- resize start -->
<div id="LGlobal_resize" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGlobal</a></div>
<h2>LGlobal.resize()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>如果设置了游戏全屏，游戏舞台会自动缩放为全屏，但是当浏览器窗口大小改变的时候，游戏舞台无法自动调整大小，这时候需要调用LGlobal.resize(),重新将舞台进行缩放调整。</p>
</div>
<!-- resize end -->

<!-- resize start -->
<div id="LStage_FULL_SCREEN" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>全屏设置</a></div>
<h2>全屏设置</h2>
<div class="hr"></div>
<p>设置全屏时，首先需要设置舞台的缩放模式LGlobal.stageScale：</p>
<p>LStageScaleMode.EXACT_FIT:[静态] 指定整个应用程序在指定区域中可见，但不尝试保持原始高宽比。</p>
<p>LStageScaleMode.SHOW_ALL:[静态] 指定整个应用程序在指定区域中可见，且不会发生扭曲，同时保持应用程序的原始高宽比。</p>
<p>LStageScaleMode.NO_BORDER:[静态] 指定整个应用程序填满指定区域，不会发生扭曲，但有可能会进行一些裁切，同时保持应用程序的原始高宽比。</p>
<p>LStageScaleMode.NO_SCALE:[静态] 指定应用程序的大小是固定的，因此，即使在更改播放器窗口大小时，它仍然保持不变。</p>
<p>设置完舞台的缩放模式之后，调用LSystem.screen(LStage.FULL_SCREEN);就可以实现全屏。</p>
<p>※1.8.0版本之前，全屏设置只能放到init函数之前，1.8.0之后可以将全屏设置放到程序中的任何一处。</p>
<p>※对于手机网页，需要在head标签里加上下面标签。</p>
<pre  class='brush: html' style="background:#ffffff;">
&lt;meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
</pre>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>可以将全屏设置放到程序中的任何一处。</p>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"mylegend",480,288,main);
function main(){  
	//......
	LGlobal.stageScale = LStageScaleMode.EXACT_FIT;
	LSystem.screen(LStage.FULL_SCREEN);
	//......
}  
</pre>
</p>
<p>或者将全屏设置放到一开始init之前。</p>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
LGlobal.stageScale = LStageScaleMode.EXACT_FIT;
LSystem.screen(LStage.FULL_SCREEN);
init(50,"mylegend",480,288,main);
function main(){  
	//......
	//......
}  
</pre>
</p>
</div>
<!-- resize end -->


<!-- LLoader_load start -->
<div id="LLoader_load" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LLoader</a></div>
<h2>load(src,loadtype)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用于读取文件</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>src:所读取文件的路径</p>
<p>loadtype:所读取文件的种类</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p><b>※</b>目前loadtype所支持的类型为"bitmapData",以后会增加其他类型。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("chara.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    addChild(bitmap);
}  
</pre>
</p>
</div>
<!-- LLoader_load end -->


<!-- LLoader_addEventListener start -->
<div id="LLoader_addEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LLoader</a></div>
<h2>addEventListener(type,listener)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>注册事件侦听器对象，以使侦听器能够接收事件通知。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型。</p>
<p>listener：处理事件的侦听器函数。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    addChild(bitmap);
}  
</pre>
</p>
</div>
<!-- LLoader_addEventListener end -->


<!-- LURLLoader_load start -->
<div id="LURLLoader_load" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LURLLoader</a></div>
<h2>load(src,loadtype)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用于读取文件</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>src:所读取文件的路径</p>
<p>loadtype:所读取文件的种类</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p><b>※</b>1.7.0版之前loadtype所支持的类型为"text",1.7.0版开始开始支持"js"，利用lufylegend.js引擎读取js文件，可以缩短界面出现的时间，因为html在load完之前，界面是无法显示的。</p>
<p><b>※</b>1.6.0版之前使用此函数需要设定LEGEND_FILE_PHP路径和php文件，1.6.0版之后使用jQuery直接利用ajax读取文件，所以只需要引入jQuery即可。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:html' style="background:#ffffff;">
&lt;!DOCTYPE html>
&lt;html>
&lt;head>
&lt;meta charset="UTF-8">
&lt;title>LURLLoader&lt;/title>
&lt;/head>
&lt;body>
&lt;div id="mylegend">loading……&lt;/div>
&lt;script type="text/javascript" src="../jquery.js">&lt;/script> 
&lt;script type="text/javascript" src="../lufylegend-1.6.0.js">&lt;/script> 
&lt;script type="text/javascript">
init(40,"mylegend",600,500,main);
var urlloader
function main(){
	urlloader = new LURLLoader();
	urlloader.addEventListener(LEvent.COMPLETE,readFileOk);
	urlloader.load("../file/test.txt","text");
}
function readFileOk(){
	alert(urlloader.data);
}
&lt;/script> 
&lt;/body>
&lt;/html>
</pre>
</p>
</div>
<!-- LURLLoader_load end -->


<!-- LURLLoader_addEventListener start -->
<div id="LURLLoader_addEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LURLLoader</a></div>
<h2>addEventListener(type,listener)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>注册事件侦听器对象，以使侦听器能够接收事件通知。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型。</p>
<p>listener：处理事件的侦听器函数。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(40,"mylegend",600,500,main);
var urlloader
function main(){
	urlloader = new LURLLoader();
	urlloader.addEventListener(LEvent.COMPLETE,readFileOk);
	urlloader.load("../file/test.txt","text");
}
function readFileOk(){
	alert(urlloader.data);
}
</pre>
</p>
</div>
<!-- LURLLoader_addEventListener end -->


<!-- LObject_LObject start -->
<div id="LObject_LObject" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LObject</a></div>
<h2>LObject()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>lufylegend.js引擎中所有对象的父类。</p>
</div>
<!-- LObject_LObject end -->
<!-- LObject_callParent start -->
<div id="LObject_callParent" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LObject</a></div>
<h2>callParent(function_name,args)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>调用父类的函数。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>function_name:函数名</p>
<p>args:参数，固定值arguments</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
LGlobal.setDebug(true);
function funA(){
	base(this,LObject,[]);
}
funA.prototype.myName = function(){
	return "AAA";
}
function funB(){
	base(this,funA,[]);
}
funB.prototype.myName = function(){
	return "BBB";
}
function funC(){
	base(this,funA,[]);
}
funC.prototype.myName = function(){
	return this.callParent("myName",arguments);
}
var objB = new funB();
trace(objB.myName());//BBB
var objC = new funC();
trace(objC.myName());//AAA
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LObject_callParent.html" target="_blank">http://lufylegend.com/demo/examples/LObject_callParent.html</a></p>
</div>
<!-- LObject_callParent end -->


<!-- LEventDispatcher_LEventDispatcher start -->
<div id="LEventDispatcher_LEventDispatcher" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LEventDispatcher</a></div>
<h2>LEventDispatcher→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<div class="hr"></div>
<h2>LEventDispatcher()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>LEventDispatcher 类是可调度事件的所有类的基类。也是 LDisplayObject 类的基类。LEventDispatcher 类允许显示列表上的任何对象都是一个事件目标。</p>
</div>
<!-- LEventDispatcher_LEventDispatcher end -->
<!-- LEventDispatcher_addEventListener start -->
<div id="LEventDispatcher_addEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LEventDispatcher</a></div>
<h2>addEventListener(type,listener)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>注册事件侦听器对象，以使侦听器能够接收事件通知。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型。</p>
<p>listener：处理事件的侦听器函数。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(event.currentTarget,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    var layer = new LSprite();
    addChild(layer);
    layer.addChild(bitmap);
    //在这里给layer 对象加上一个鼠标事件
    layer.addEventListener(LMouseEvent.MOUSE_DOWN,click);
}  
functionclick(event){ 
    //鼠标按下时的处理 
}
</pre>
</p>
<p>在上面的例子里，LLoader和LSprite都是LEventDispatcher的子类，现在使用它们来实现了图片加载事件和鼠标点击事件</p>
</div>
<!-- LEventDispatcher_addEventListener end -->
<!-- LEventDispatcher_removeEventListener start -->
<div id="LEventDispatcher_removeEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LEventDispatcher</a></div>
<h2>removeEventListener(type,listener)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>删除侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器，则对此方法的调用没有任何效果。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型。</p>
<p>listener：要删除的侦听器对象。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(event.currentTarget,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    var layer = new LSprite();
    addChild(layer);
    layer.addChild(bitmap);
    //在这里给layer 对象加上一个鼠标事件
    layer.addEventListener(LMouseEvent.MOUSE_DOWN,click);
    //将加载layer 对象加上的鼠标事件移除 
    layer.removeEventListener(LMouseEvent.MOUSE_DOWN,click);
}  
</pre>
</p>
<p>上面的代码只是一个用法的举例，鼠标事件在加入之后，紧接着又将其移除</p>
</div>
<!-- LEventDispatcher_removeEventListener end -->

<!-- LEventDispatcher_dispatchEvent start -->
<div id="LEventDispatcher_dispatchEvent" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LEventDispatcher</a></div>
<h2>dispatchEvent(event)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将事件调度到事件流中。事件目标是对其调用 dispatchEvent() 方法的 LEventDispatcher 对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>event：调度到事件流中的 Event 对象。如果正在重新调度事件，则会自动创建此事件的一个克隆。在调度了事件后，其 target 属性将无法更改，因此您必须创建此事件的一个新副本以能够重新调度。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(20,"legend",400,400,main);
function main(){
	var box = new MyBox();
	addChild(box);
}
function MyBox(){
	var self = this;
	base(self,LSprite,[]);
	self.graphics.drawRect(1,"#000000",[0,0,100,100],true,"#000000");
	self.graphics.drawRect(1,"#FF0000",[100,0,100,100],true,"#FF0000");
	self.addEventListener(LMouseEvent.MOUSE_UP,self.onclick);
	
	self.addEventListener(MyBox.CLICK_LEFT,function(event){
		alert("left");
	});
	self.addEventListener(MyBox.CLICK_RIGHT,function(event){
		alert("right");
	});
}
MyBox.CLICK_LEFT = "click_left";
MyBox.CLICK_RIGHT = "click_right";
MyBox.prototype.onclick = function(event){
	var self = event.clickTarget;
	if(event.selfX < 100){
		self.dispatchEvent(MyBox.CLICK_LEFT);
	}else{
		self.dispatchEvent(MyBox.CLICK_RIGHT);
	}
}
</pre>
</p>
<p>上面的例子中，我为MyBox类自定义了两个事件，当点击左边的黑色框的时候，会弹出"left"，点击右边的红色框的时候，会弹出"right"。</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LEventDispatcher_dispatchEvent.html" target="_blank">http://lufylegend.com/.../LEventDispatcher_dispatchEvent.html</a></p>
<p>自定义事件是一个很有用的功能，用好这个功能可以让很多复杂的逻辑变得异常简单，在ACT，RPG，SLG等中大型游戏中都会经常用到。</p>
</div>
<!-- LEventDispatcher_dispatchEvent end -->

<!-- LEventDispatcher_hasEventListener start -->
<div id="LEventDispatcher_hasEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LEventDispatcher</a></div>
<h2>hasEventListener(type)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。这样，您就可以确定 LEventDispatcher 对象在事件流层次结构中的哪个位置改变了对事件类型的处理。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型。</p>
<div class="hr"></div>
<h3>■返回：</h3>
<p> Boolean — 如果指定类型的侦听器已注册，则值为 true；否则，值为 false。</p>
</div>
<!-- LEventDispatcher_hasEventListener end -->

<!-- LDisplayObject_LDisplayObject start -->
<div id="LDisplayObject_LDisplayObject" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LDisplayObject</a></div>
<h2>LDisplayObject<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<div class="hr"></div>
<h2>LDisplayObject()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>LDisplayObject类是可放在显示列表中的所有对象的基类。</p>
</div>
<!-- LDisplayObject_LDisplayObject end -->

<!-- LDisplayObject_setShadow start -->
<div id="LDisplayObject_setShadow" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LDisplayObject</a></div>
<h2>setShadow()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>添加阴影(光晕)效果，具体做法请看<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDropShadowFilter_LDropShadowFilter')">LDropShadowFilter</a>。</p>
</div>
<!-- LDisplayObject_setShadow end -->

<!-- LDisplayObject_getRootCoordinate start -->
<div id="LDisplayObject_getRootCoordinate" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LDisplayObject</a></div>
<h2>getRootCoordinate()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>得到一个可显示对象相对于canvas标签左上点的坐标。</p>
<div class="hr"></div>
<h3>■返回：</h3>
<p> LPoint — 一个LPoint对象。</p>
</div>
<!-- LDisplayObject_getRootCoordinate end -->

<!-- LDisplayObject_getBounds start -->
<div id="LDisplayObject_getBounds" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LDisplayObject</a></div>
<h2>getBounds(targetCoordinateSpace)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>返回一个矩形，该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。</p>
<div class="hr"></div>
<h3>■返回：</h3>
<p> LRectangle — 一个LRectangle对象。</p>
</div>
<!-- LDisplayObject_getBounds end -->

<!-- LDisplayObject_getDataURL start -->
<div id="LDisplayObject_getDataURL" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LDisplayObject</a></div>
<h2>getDataURL()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将该对象转换成base64编码的image。</p>
<div class="hr"></div>
<h3>■返回：</h3>
<p> base64编码的image。</p>
</div>
<!-- LDisplayObject_getDataURL end -->

<!-- LInteractiveObject_LInteractiveObject start -->
<div id="LInteractiveObject_LInteractiveObject" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LInteractiveObject</a></div>
<h2>LInteractiveObject<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LInteractiveObject()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>LInteractiveObject 类是用户可以使用鼠标、键盘或其他用户输入设备与之交互的所有显示对象的抽象基类。</p>
</div>
<!-- LInteractiveObject_LInteractiveObject end -->


<!-- LBitmapData_LBitmapData start -->
<div id="LBitmapData_LBitmapData" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>LBitmapData→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LBitmapData(
<br />&nbsp;&nbsp;&nbsp;&nbsp;image,
<br />&nbsp;&nbsp;&nbsp;&nbsp;x,
<br />&nbsp;&nbsp;&nbsp;&nbsp;y,
<br />&nbsp;&nbsp;&nbsp;&nbsp;width,
<br />&nbsp;&nbsp;&nbsp;&nbsp;height
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用来保存Image对象</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>image:Image对象</p>
<p>x:Image可视范围x坐标（可省略）</p>
<p>y:Image可视范围y坐标（可省略）</p>
<p>width:Image可视范围宽（可省略）</p>
<p>height:Image可视范围高（可省略）</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>type:类型</p>
<p>x:Image可视范围x坐标</p>
<p>y:Image可视范围y坐标</p>
<p>width:Image可视范围宽</p>
<p>height:Image可视范围高</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(event.currentTarget,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    addChild(bitmap);
}  
</pre>
</p>
</div>
<!-- LBitmapData_LBitmapData end -->


<!-- LBitmapData_setCoordinate start -->
<div id="LBitmapData_setCoordinate" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>setCoordinate(x,y)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用来改变LBitmapData内Image的可视范围的起点位置坐标</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x:Image可视范围x坐标</p>
<p>y:Image可视范围y坐标</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(event.currentTarget,0,0,64,64);  
    bitmapdata.setCoordinate(50,100);
    var bitmap = new LBitmap(bitmapdata);
    addChild(bitmap);
}  
</pre>
</p>
</div>
<!-- LBitmapData_setCoordinate end -->


<!-- LBitmapData_setProperties start -->
<div id="LBitmapData_setProperties" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>setProperties(x,y,width,height)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用来改变LBitmapData内Image的可视范围</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x:Image可视范围x坐标</p>
<p>y:Image可视范围y坐标</p>
<p>width:Image可视范围宽</p>
<p>height:Image可视范围高</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(event.currentTarget,0,0,64,64);  
    bitmapdata.setProperties(50,100,200,50);
    var bitmap = new LBitmap(bitmapdata);
    addChild(bitmap);
}  
</pre>
</p>
</div>
<!-- LBitmapData_setProperties end -->


<!-- LBitmapData_getPixel start -->
<div id="LBitmapData_getPixel" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>getPixel(x,y,colorType)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>返回一个表示 BitmapData 对象中在某个特定点 (x, y) 处的 RGB 像素值的数组。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x:像素的x坐标</p>
<p>y:像素的y坐标</p>
<p>colorType:需要获取的像素数据的格式，默认为像素数组，当设置成字符串"number"的时候，返回number型的像素</p>
<div class="hr"></div>
<h3>■返回：</h3>
<p> Array— 一个表示 RGB 像素值的数组。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"legend",400,400,main);
var bitmapData,bitmapData2;
var imgData = [
	{name:"face",path:"face.jpg"}
];
var imglist;
function main(){
	LLoadManage.load(imgData,null,gameInit);
}
function gameInit(result){
	LGlobal.setDebug(true);
	imglist = result;
	bitmapData = new LBitmapData(imglist["face"]);
	bitmapData2 = new LBitmapData(null,0,0,500,400);
	var img,imgs = [],arr;
	bitmapData.lock();
	for(var i=0;i<50;i++){
		arr = [];
		for(var j=0;j<50;j++){
			img = bitmapData.getPixel(100+i,100+j);
			arr.push(img);
		}
		imgs.push(arr);
	}
	bitmapData.unlock();
	
	bitmapData2.lock();
	for(var i=0;i<50;i++){
		arr = imgs[i];
		for(var j=0;j<50;j++){
			img = arr[j];
			bitmapData2.setPixel(i,j,img);
		}
	}
	bitmapData2.unlock();	
	backLayer = new LSprite();
	addChild(backLayer);
	backLayer.addChild(new LBitmap(bitmapData2));
}
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LBitmapData_getPixel.html" target="_blank">http://lufylegend.com/demo/examples/LBitmapData_getPixel.html</a></p>
</div>
<!-- LBitmapData_getPixel end -->


<!-- LBitmapData_getPixels start -->
<div id="LBitmapData_getPixels" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>getPixels(rect)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>返回一组表示 BitmapData 对象中在某个特定区域的 RGB 像素值的数组。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>rect:LRectangle对象，像素区域</p>
<div class="hr"></div>
<h3>■返回：</h3>
<p> Array— 一组表示 RGB 像素值的数组。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"legend",400,400,main);
var bitmapData,bitmapData2;
var imgData = [
	{name:"face",path:"face.jpg"}
];
var imglist;
function main(){
	LLoadManage.load(imgData,null,gameInit);
}
function gameInit(result){
	LGlobal.setDebug(true);
	imglist = result;
	bitmapData = new LBitmapData(imglist["face"]);
	bitmapData2 = new LBitmapData(null,0,0,500,400);
	var img = bitmapData.getPixels(new LRectangle(75,50,100,100));
	
	bitmapData2.lock();
	bitmapData2.setPixels(new LRectangle(50,30,50,50),img);
	bitmapData2.setPixels(new LRectangle(100,30,50,50),img);
	bitmapData2.setPixels(new LRectangle(150,30,50,50),img);
	bitmapData2.setPixels(new LRectangle(200,30,50,50),img);
	bitmapData2.unlock();	
	backLayer = new LSprite();
	addChild(backLayer);
	backLayer.addChild(new LBitmap(bitmapData2));
}
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LBitmapData_getPixels.html" target="_blank">http://lufylegend.com/demo/examples/LBitmapData_getPixels.html</a></p>
</div>
<!-- LBitmapData_getPixels end -->


<!-- LBitmapData_setPixel start -->
<div id="LBitmapData_setPixel" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>setPixel(x,y,data)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设置 LBitmapData 对象的单个像素。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x:像素的x坐标</p>
<p>y:像素的y坐标</p>
<p>data:像素值(支持像素数组，#FF0000,0xFF000等三种格式)</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"legend",400,400,main);
var bitmapData,bitmapData2;
var imgData = [
	{name:"face",path:"face.jpg"}
];
var imglist;
function main(){
	LLoadManage.load(imgData,null,gameInit);
}
function gameInit(result){
	LGlobal.setDebug(true);
	imglist = result;
	bitmapData = new LBitmapData(imglist["face"]);
	bitmapData2 = new LBitmapData(null,0,0,500,400);
	var img,imgs = [],arr;
	bitmapData.lock();
	for(var i=0;i<50;i++){
		arr = [];
		for(var j=0;j<50;j++){
			img = bitmapData.getPixel(100+i,100+j);
			arr.push(img);
		}
		imgs.push(arr);
	}
	bitmapData.unlock();
	
	bitmapData2.lock();
	for(var i=0;i<50;i++){
		arr = imgs[i];
		for(var j=0;j<50;j++){
			img = arr[j];
			bitmapData2.setPixel(i,j,img);
		}
	}
	bitmapData2.unlock();	
	backLayer = new LSprite();
	addChild(backLayer);
	backLayer.addChild(new LBitmap(bitmapData2));
}
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LBitmapData_getPixel.html" target="_blank">http://lufylegend.com/demo/examples/LBitmapData_getPixel.html</a></p>
</div>
<!-- LBitmapData_setPixel end -->


<!-- LBitmapData_setPixels start -->
<div id="LBitmapData_setPixels" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>setPixels(rect, data)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将像素数据数组转换粘贴到指定的矩形区域。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>rect:LRectangle对象，像素区域</p>
<p>data:像素数据(支持像素数组，#FF0000,0xFF000等三种格式)</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"legend",400,400,main);
var bitmapData,bitmapData2;
var imgData = [
	{name:"face",path:"face.jpg"}
];
var imglist;
function main(){
	LLoadManage.load(imgData,null,gameInit);
}
function gameInit(result){
	LGlobal.setDebug(true);
	imglist = result;
	bitmapData = new LBitmapData(imglist["face"]);
	bitmapData2 = new LBitmapData(null,0,0,500,400);
	var img = bitmapData.getPixels(new LRectangle(75,50,100,100));
	
	bitmapData2.lock();
	bitmapData2.setPixels(new LRectangle(50,30,50,50),img);
	bitmapData2.setPixels(new LRectangle(100,30,50,50),img);
	bitmapData2.setPixels(new LRectangle(150,30,50,50),img);
	bitmapData2.setPixels(new LRectangle(200,30,50,50),img);
	bitmapData2.unlock();	
	backLayer = new LSprite();
	addChild(backLayer);
	backLayer.addChild(new LBitmap(bitmapData2));
}
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LBitmapData_getPixels.html" target="_blank">http://lufylegend.com/demo/examples/LBitmapData_getPixels.html</a></p>
</div>
<!-- LBitmapData_setPixels end -->


<!-- LBitmapData_draw start -->
<div id="LBitmapData_draw" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>draw(source)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>在位图图像上绘制 source 显示对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>source:显示对象</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"legend",400,400,main);
var bitmapData;
function main(){
	var layer = new LSprite();
	layer.graphics.drawRect(1,"#000000",[0,0,100,100],true,"#000000");
	layer.graphics.drawRect(1,"#FF0000",[100,0,100,100],true,"#FF0000");
	addChild(layer);
	
	bitmapData = new LBitmapData(null,0,0,500,400);
	bitmapData.draw(layer);
	var bitmap = new LBitmap(bitmapData)
	bitmap.x = 0;
	bitmap.y = 150;
	addChild(bitmap);
}
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LBitmapData_draw.html" target="_blank">http://lufylegend.com/demo/examples/LBitmapData_draw.html</a></p>
</div>
<!-- LBitmapData_draw end -->

<!-- LBitmapData_clone start -->
<div id="LBitmapData_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>克隆一个LBitmapData对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LBitmapData_clone end -->


<!-- LBitmapData_lock start -->
<div id="LBitmapData_lock" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>lock()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>锁定图像，在lufylegend.js中对LBitmapData对象进行像素操作的时候，需要先将LBitmapData对象复制到另一个canvas对象上，使用lock可避免多次复制。要提高性能，请在对 setPixel(),setPixels() 或 getPixel(),getPixels() 等方法进行多次调用之前和之后使用此方法及 unlock() 方法。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
请参照<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_setPixels')">setPixels</a>部分
</p>
</div>
<!-- LBitmapData_lock end -->

<!-- LBitmapData_unlock start -->
<div id="LBitmapData_unlock" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmapData</a></div>
<h2>unlock()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>解除锁定图像，在lufylegend.js中对LBitmapData对象进行像素操作的时候，需要先将LBitmapData对象复制到另一个canvas对象上，使用unlock可避免多次复制。要提高性能，请在对 setPixel(),setPixels() 或 getPixel(),getPixels() 等方法进行多次调用之前和之后使用此方法及 lock() 方法。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
请参照<a href="javascript:void(0)" onclick="closeMenu('LBitmapData_setPixels')">setPixels</a>部分
</p>
</div>
<!-- LBitmapData_unlock end -->


<!-- LBitmap_LBitmap start -->
<div id="LBitmap_LBitmap" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmap</a></div>
<h2>LBitmap<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LBitmap(bitmapdata)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用来将LBitmapData对象里的Image显示到页面上</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>bitmapdata:LBitmapData对象</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>type:类型</p>
<p>x:x坐标x</p>
<p>y:y坐标x</p>
<p>scaleX:X坐标方向上的缩放比例</p>
<p>scaleY:Y坐标方向上的缩放比例</p>
<p>alpha:透明度</p>
<p>rotate:旋转角度</p>
<p>visible:是否可见，当设为false的时候，该LBitmap对象不可视，且内部所有处理都将停止</p>
<p>filters:光晕效果，具体可参照LDropShadowFilter类的介绍</p>
<p class="chapter">blendMode:<a href="javascript:void(0)" onclick="closeMenu('LBlendMode_LBlendMode')">LBlendMode</a> 类中的一个值，用于指定要使用的混合模式。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    addChild(bitmap);
}  
</pre>
</p>
</div>
<!-- LBitmap_LBitmap end -->


<!-- LBitmap_getWidth start -->
<div id="LBitmap_getWidth" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmap</a></div>
<h2>getWidth()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>获取LBitmap对象的宽度</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    LGlobal.setDebug(true);
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    addChild(bitmap);
    trace("bitmap的宽度是："+bitmap.getWidth());
}  
</pre>
</p>
</div>
<!-- LBitmap_getWidth end -->


<!-- LBitmap_getHeight start -->
<div id="LBitmap_getHeight" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmap</a></div>
<h2>getHeight()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>获取LBitmap对象的高度</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    LGlobal.setDebug(true);
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    addChild(bitmap);
    trace("bitmap的高度是："+bitmap.getHeight());
}  
</pre>
</p>
</div>
<!-- LBitmap_getHeight end -->


<!-- LBitmap_clone start -->
<div id="LBitmap_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmap</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>克隆一个LBitmap对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LBitmap_clone end -->
<!-- LBitmap_remove start -->
<div id="LBitmap_remove" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBitmap</a></div>
<h2>remove()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>从父容器中移除自己。</p>
</div>
<!-- LBitmap_remove end -->

<!-- LBlendMode_LBlendMode start -->
<div id="LBlendMode_LBlendMode" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>LBlendMode</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>提供混合模式可视效果的常量值的类。这些常量在以下项目中使用：</p>
<p>LSprite,LBitmap,LTextField类的 blendMode 属性。</p>
<div class="hr"></div>
<h3>■公共常量：</h3>
<p>SOURCE_OVER:默认。在目标图像上显示源图像。</p>
<p>SOURCE_ATOP:在目标图像顶部显示源图像。源图像位于目标图像之外的部分是不可见的。</p>
<p>SOURCE_IN:在目标图像中显示源图像。只有目标图像内的源图像部分会显示，目标图像是透明的。</p>
<p>SOURCE_OUT:在目标图像之外显示源图像。只会显示目标图像之外源图像部分，目标图像是透明的。</p>
<p>DESTINATION_OVER:在源图像上方显示目标图像。</p>
<p>DESTINATION_ATOP:在源图像顶部显示目标图像。源图像之外的目标图像部分不会被显示。</p>
<p>DESTINATION_IN:在源图像中显示目标图像。只有源图像内的目标图像部分会被显示，源图像是透明的。</p>
<p>DESTINATION_OUT:在源图像外显示目标图像。只有源图像外的目标图像部分会被显示，源图像是透明的。</p>
<p>LIGHTER:显示源图像 + 目标图像。</p>
<p>COPY:显示源图像。忽略目标图像。</p>
<p>XOR:使用异或操作对源图像与目标图像进行组合。</p>
<p>NONE:不设定，采用默认效果。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var imgLayer = new LSprite();
addChild(imgLayer);
var back = new LBitmap(new LBitmapData(dataList["back"]));
back.x = -480;
imgLayer.addChild(back);
var img = new LBitmap(new LBitmapData(dataList["img"]));
img.x = 100;
img.y = -20;
imgLayer.addChild(img);
img.blendMode = LBlendMode.LIGHTER;
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LBlendMode.html" target="_blank">http://lufylegend.com/demo/examples/LBlendMode.html</a></p>
</div>
<!-- LBlendMode_LBlendMode end -->

<!-- LShape_LShape start -->
<div id="LShape_LShape" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LShape</a></div>
<h2>LShape<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LShape()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>此类用于创建简单形状。LShape 类包括 graphics 属性，该属性使您可以从 LGraphics 类访问方法。LSprite 类也包括 graphics 属性，LShape 对象会比包含相同图形的 LSprite 对象消耗的内存少。</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>type:类型</p>
<p>x:坐标x</p>
<p>y:坐标y</p>
<p>scaleX:X坐标方向上的缩放比例</p>
<p>scaleY:Y坐标方向上的缩放比例</p>
<p>alpha:透明度</p>
<p>rotate:旋转角度</p>
<p>visible:是否可见，当设为false的时候，该LBitmap对象不可视，且内部所有处理都将停止</p>
<p>graphics:指定属于此 LSprite 的 LGraphics 对象，在此 LSprite 中可执行矢量绘图命令。</p>
<p>mask:遮罩</p>
<p>filters:光晕效果，具体可参照LDropShadowFilter类的介绍</p>
</div>
<!-- LShape_LShape end -->
<!-- LSprite_LSprite start -->
<div id="LSprite_LSprite" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>LSprite<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LInteractiveObject_LInteractiveObject')">LInteractiveObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LSprite()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>LSprite 类是基本显示列表构造块，一个可显示图形并且也可包含子项的显示列表节点。</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>type:类型</p>
<p>x:坐标x</p>
<p>y:坐标y</p>
<p>scaleX:X坐标方向上的缩放比例</p>
<p>scaleY:Y坐标方向上的缩放比例</p>
<p>alpha:透明度</p>
<p>rotate:旋转角度</p>
<p>visible:是否可见，当设为false的时候，该LBitmap对象不可视，且内部所有处理都将停止</p>
<p>childList:该对象的所有子项</p>
<p>graphics:指定属于此 LSprite 的 LGraphics 对象，在此 LSprite 中可执行矢量绘图命令。</p>
<p>box2dBody:结合box2dweb后，创建的body2d</p>
<p>mask:遮罩</p>
<p>filters:光晕效果，具体可参照LDropShadowFilter类的介绍</p>
<p>mouseEnabled:指定此对象是否接收鼠标消息</p>
<p>mouseChildren:确定对象的子级是否支持鼠标消息</p>
<p class="chapter">blendMode:<a href="javascript:void(0)" onclick="closeMenu('LBlendMode_LBlendMode')">LBlendMode</a> 类中的一个值，用于指定要使用的混合模式。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    var layer = new LSprite();
    addChild(layer);
    layer.addChild(bitmap);
}  
</pre>
</p>
</div>
<!-- LSprite_LSprite end -->


<!-- LSprite_addChild start -->
<div id="LSprite_addChild" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>addChild(DisplayObject)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将一个可显示的对象(LSprite,LBitmap等)或子实例添加到该对象上。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>DisplayObject:对象</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    var layer = new LSprite();
    addChild(layer);
    layer.addChild(bitmap);
}  
</pre>
</p>
</div>
<!-- LSprite_addChild end -->


<!-- LSprite_addChildAt start -->
<div id="LSprite_addChildAt" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>addChildAt(DisplayObject,index)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将一个 LDisplayObject 子实例添加到该实例中。该子项将被添加到指定的索引位置。索引为 0 表示该对象的显示列表的后（底）部。</p>
</div>
<!-- LSprite_addChildAt end -->


<!-- LSprite_removeChild start -->
<div id="LSprite_removeChild" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>removeChild(DisplayObject)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将可显示的子对象从该对象上移除</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>DisplayObject:对象</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(200,"mylegend",500,350,main);
function main(){  
    var backLayer = LSprite();
    addChild(backLayer);
    //加入对象
    var child = LSprite();
    backLayer.addChild(child );
    //移除对象
    backLayer.removeChild(child );
}  
</pre>
</p>
</div>
<!-- LSprite_removeChild end -->


<!-- LSprite_getChildAt start -->
<div id="LSprite_getChildAt" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>getChildAt(index)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>得到该实例的一个子对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>index：子对象的索引</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>根据索引，获取该实例的一个子对象</p>
</div>
<!-- LSprite_getChildAt end -->


<!-- LSprite_removeChildAt start -->
<div id="LSprite_removeChildAt" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>removeChildAt(index)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>移除该实例的一个子对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>index：移除子对象的索引</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>根据索引，移除该实例的一个子对象</p>
</div>
<!-- LSprite_removeChildAt end -->


<!-- LSprite_removeAllChild start -->
<div id="LSprite_removeAllChild" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>removeAllChild()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>移除该实例的所有子对象。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>每个LSprite对象被移除的时候，都会自动调用本身的removeAllChild函数和die函数，将它所有的子对象一起移除</p>
</div>
<!-- LSprite_removeAllChild end -->


<!-- LSprite_getChildIndex start -->
<div id="LSprite_getChildIndex" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>getChildIndex(child)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>返回该对象的 child 实例的索引位置。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>child：要标识的 LDisplayObject 实例。</p>
<div class="hr"></div>
<h3>■返回：</h3>
<p>int — 要标识的子显示对象的索引位置。</p>
</div>
<!-- LSprite_getChildIndex end -->


<!-- LSprite_setChildIndex start -->
<div id="LSprite_setChildIndex" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>setChildIndex(child, index)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>更改现有子项在显示对象容器中的位置。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>child：要为其更改索引编号的 DisplayObject 子实例。</p>
<p>index：生成的 child 显示对象的索引编号。</p>
</div>
<!-- LSprite_setChildIndex end -->


<!-- LSprite_addEventListener start -->
<div id="LSprite_addEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>addEventListener(type,listener)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>注册事件侦听器对象，以使侦听器能够接收事件通知。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型。</p>
<p>listener：处理事件的侦听器函数。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    var layer = new LSprite();
    addChild(layer);
    layer.addChild(bitmap);
    //在这里给layer 对象加上一个鼠标事件
    layer.addEventListener(LMouseEvent.MOUSE_DOWN,click);
}  
functionclick(event){ 
    //鼠标按下时的处理 
}
</pre>
</p>
</div>
<!-- LSprite_addEventListener end -->


<!-- LSprite_removeEventListener start -->
<div id="LSprite_removeEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>removeEventListener(type,listener)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>删除侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器，则对此方法的调用没有任何效果。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型。</p>
<p>listener：要删除的侦听器对象。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loader;  
init(200,"mylegend",500,350,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("img.png","bitmapData");  
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,64,64);  
    var bitmap = new LBitmap(bitmapdata);
    var layer = new LSprite();
    addChild(layer);
    layer.addChild(bitmap);
    //在这里给layer 对象加上一个鼠标事件
    layer.addEventListener(LMouseEvent.MOUSE_DOWN,click);
    //将加载layer 对象加上的鼠标事件移除 
    layer.removeEventListener(LMouseEvent.MOUSE_DOWN,click);
}  
</pre>
</p>
<p>上面的代码只是一个用法的举例，鼠标事件在加入之后，紧接着又将其移除</p>
</div>
<!-- LSprite_removeEventListener end -->


<!-- LSprite_die start -->
<div id="LSprite_die" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>die()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>移除该实例的所有事件。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>该函数会移除该实例上加载的所有事件。包括各种鼠标事件和循环事件等。</p>
<p>该函数和removeAllChild函数一样，在一个LSprite对象被移除的时候会自动调用。</p>
</div>
<!-- LSprite_die end -->


<!-- LSprite_addBodyCircle start -->
<div id="LSprite_addBodyCircle" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>addBodyCircle(
<br />&nbsp;&nbsp;&nbsp;&nbsp;radius,
<br />&nbsp;&nbsp;&nbsp;&nbsp;cx,
<br />&nbsp;&nbsp;&nbsp;&nbsp;cy,
<br />&nbsp;&nbsp;&nbsp;&nbsp;type,
<br />&nbsp;&nbsp;&nbsp;&nbsp;density,
<br />&nbsp;&nbsp;&nbsp;&nbsp;friction,
<br />&nbsp;&nbsp;&nbsp;&nbsp;restitution
<br />)</h2>
<div class="hr"></div>
<h3>■注意：</h3>
<p>1.8.0之后，使用此函数，需要自己引入lufylegend.LBox2d类才能用。</p>
<div class="hr"></div>
<h3>■作用：</h3>
<p>Box2d相关，设定圆形body。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>radius：半径</p>
<p>cx：圆心坐标x</p>
<p>cy：圆心坐标y</p>
<p>type：是否动态(1或0)</p>
<p>density：密度</p>
<p>friction：摩擦</p>
<p>restitution：弹性</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>该函数返回一个被创建的box2d的body</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
cLayer = new LSprite(); 
cLayer.x = 50 + Math.random()*700;
cLayer.y = 50; 
backLayer.addChild(cLayer); 
bitmap = new LBitmap(newLBitmapData(imglist["img"])); 
cLayer.addChild(bitmap); 
cLayer.addBodyCircle(bitmap.getWidth()*0.5,bitmap.getHeight()*0.5,bitmap.getWidth()*0.5,1,0.5,0.4,0.5);
</pre>
</p>
</div>
<!-- LSprite_addBodyCircle end -->


<!-- LSprite_addBodyPolygon start -->
<div id="LSprite_addBodyPolygon" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>addBodyPolygon(
<br />&nbsp;&nbsp;&nbsp;&nbsp;width,
<br />&nbsp;&nbsp;&nbsp;&nbsp;height,
<br />&nbsp;&nbsp;&nbsp;&nbsp;type,
<br />&nbsp;&nbsp;&nbsp;&nbsp;density,
<br />&nbsp;&nbsp;&nbsp;&nbsp;friction,
<br />&nbsp;&nbsp;&nbsp;&nbsp;restitution
<br />)</h2>
<div class="hr"></div>
<h3>■注意：</h3>
<p>1.8.0之后，使用此函数，需要自己引入lufylegend.LBox2d类才能用。</p>
<div class="hr"></div>
<h3>■作用：</h3>
<p>Box2d相关，设定圆形body。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>width：矩形宽</p>
<p>height：矩形高</p>
<p>type：是否动态(1或0)</p>
<p>density：密度</p>
<p>friction：摩擦</p>
<p>restitution：弹性</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>该函数返回一个被创建的box2d的body</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
cLayer = new LSprite(); 
cLayer.x = 50 + Math.random()*700;
cLayer.y = 50; 
backLayer.addChild(cLayer); 
bitmap = new LBitmap(newLBitmapData(imglist["img"])); 
cLayer.addChild(bitmap); 
cLayer.addBodyPolygon(bitmap.getWidth(),bitmap.getHeight(),1,5,.4,.2);
</pre>
</p>
</div>
<!-- LSprite_addBodyPolygon end -->


<!-- LSprite_addBodyVertices start -->
<div id="LSprite_addBodyVertices" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>addBodyVertices(
<br />&nbsp;&nbsp;&nbsp;&nbsp;v,
<br />&nbsp;&nbsp;&nbsp;&nbsp;cx,
<br />&nbsp;&nbsp;&nbsp;&nbsp;cy,
<br />&nbsp;&nbsp;&nbsp;&nbsp;type,
<br />&nbsp;&nbsp;&nbsp;&nbsp;density,
<br />&nbsp;&nbsp;&nbsp;&nbsp;friction,
<br />&nbsp;&nbsp;&nbsp;&nbsp;restitution
<br />)</h2>
<div class="hr"></div>
<h3>■注意：</h3>
<p>1.8.0之后，使用此函数，需要自己引入lufylegend.LBox2d类才能用。</p>
<div class="hr"></div>
<h3>■作用：</h3>
<p>Box2d相关，已定点数组形式设定任意形状的body。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>v：顶点数组</p>
<p>cx：中心坐标x</p>
<p>cy：中心坐标y</p>
<p>type：是否动态(1或0)</p>
<p>density：密度</p>
<p>friction：摩擦</p>
<p>restitution：弹性</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>该函数返回一个被创建的box2d的body</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
cLayer = new LSprite(); 
cLayer.x = 50 + Math.random()*700;
cLayer.y = 50; 
backLayer.addChild(cLayer); 
bitmap = new LBitmap(newLBitmapData(imglist["img"])); 
cLayer.addChild(bitmap); 
var shapeArray = [  
    [[0,54],[27,0],[54,54]]  
]; 
cLayer.addBodyVertices(shapeArray,27,27,1,.5,.4,.5); 
</pre>
</p>
</div>
<!-- LSprite_addBodyVertices end -->


<!-- LSprite_clearBody start -->
<div id="LSprite_clearBody" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>clearBody()</h2>
<div class="hr"></div>
<h3>■注意：</h3>
<p>1.8.0之后，使用此函数，需要自己引入lufylegend.LBox2d类才能用。</p>
<div class="hr"></div>
<h3>■作用：</h3>
<p>Box2d相关，移除已设定的body。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>一个LSprite对象通过addBodyCircle，addBodyPolygon等方法，会将其变为一个Box2d物理世界里的一个物体，它的运动开始遵循牛顿运动定律，当调用它的clearBody()函数后，会将其变回到普通的LSprite对象，并且被加入到该对象上的body也一起被移除</p>
</div>
<!-- LSprite_clearBody end -->


<!-- LSprite_setBodyMouseJoint start -->
<div id="LSprite_setBodyMouseJoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>setBodyMouseJoint(value)</h2>
<div class="hr"></div>
<h3>■注意：</h3>
<p>1.8.0之后，使用此函数，需要自己引入lufylegend.LBox2d类才能用。</p>
<div class="hr"></div>
<h3>■作用：</h3>
<p>Box2d相关，跟随鼠标拖动</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：是否支持鼠标拖拽</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>一个LSprite对象通过addBodyCircle，addBodyPolygon等方法，会将其变为一个Box2d物理世界里的一个物体，如果调用它的setBodyMouseJoint(true)函数，可以让其支持鼠标拖拽</p>
</div>
<!-- LSprite_setBodyMouseJoint end -->


<!-- LSprite_setRotate start -->
<div id="LSprite_setRotate" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>setRotate(angle)</h2>
<div class="hr"></div>
<h3>■注意：</h3>
<p>1.8.0之后，使用此函数，需要自己引入lufylegend.LBox2d类才能用。</p>
<div class="hr"></div>
<h3>■作用：</h3>
<p>Box2d相关，旋转</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>angle：旋转角度</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>当一个LSprite对象被加入Box2d的body后，它的运动和旋转等都是根据这个body来变化的，所以只改变它的rotate属性是无法令对象本身发生旋转的，所以要使用setRotate函数来实现被加入body的LSprite对象的旋转</p>
</div>
<!-- LSprite_setRotate end -->

<!-- LSprite_clone start -->
<div id="LSprite_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>克隆一个LSprite对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LSprite_clone end -->
<!-- LSprite_remove start -->
<div id="LSprite_remove" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>remove()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>从父容器中移除自己。</p>
</div>
<!-- LSprite_remove end -->
<!-- LSprite_startDrag start -->
<div id="LSprite_startDrag" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>startDrag(touchPointID)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>允许用户拖动指定的 LSprite。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>touchPointID：分配给触摸点的整数。</p>
</div>
<!-- LSprite_startDrag end -->
<!-- LSprite_stopDrag start -->
<div id="LSprite_stopDrag" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSprite</a></div>
<h2>stopDrag()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>结束 startDrag() 方法。</p>
</div>
<!-- LSprite_stopDrag end -->

<!-- LGraphics_LGraphics start -->
<div id="LGraphics_LGraphics" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>LGraphics→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LGraphics()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>LGraphics类包含一组可用来创建矢量形状的方法。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>LGraphics类包含一组可用来创建矢量形状的方法。 支持绘制的显示对象有LSprite对象。LSprite类中包括 graphics 属性，该属性是一个 LGraphics 对象。以下是为便于使用而提供的一些辅助函数：drawRect()、drawArc() 和 drawVertices()。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
backLayer = newLSprite();
addChild(backLayer);
//绘制一个矩形
backLayer.graphics.drawRect(10,"#000000",[0, 0, 800, 400],true,"#cccc80");
</pre>
</p>
</div>
<!-- LGraphics_LGraphics end -->


<!-- LGraphics_drawLine start -->
<div id="LGraphics_drawLine" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>drawLine(thickness,lineColor,pointArray)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>画一条线。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>thickness：线粗</p>
<p>lineColor：线颜色</p>
<p>pointArray：[起始坐标x,起始坐标y,结束坐标x,结束坐标y]</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer = new LSprite();
addChild(backLayer);
backLayer.graphics.drawLine(2,"#ff0000",[10,10,100,50]);
</pre>
</p>
</div>
<!-- LGraphics_drawLine end -->


<!-- LGraphics_drawArc start -->
<div id="LGraphics_drawArc" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>drawArc(
<br />&nbsp;&nbsp;&nbsp;&nbsp;thickness,
<br />&nbsp;&nbsp;&nbsp;&nbsp;lineColor,
<br />&nbsp;&nbsp;&nbsp;&nbsp;pointArray,
<br />&nbsp;&nbsp;&nbsp;&nbsp;isfill,
<br />&nbsp;&nbsp;&nbsp;&nbsp;color
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>画一段圆弧</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>thickness：边缘线粗</p>
<p>lineColor：边缘线颜色</p>
<p>pointArray：数组元素依次为arc的所有参数，[圆心坐标x,圆心坐标y,半径r,起始角度sAngle,结束角度eAngle,顺逆时针aClockwise,是否画扇形isSector]</p>
<p>isfill：是否实心图形</p>
<p>color：实心颜色</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer = new LSprite();
addChild(backLayer);
backLayer.graphics.drawArc(2,"#ff0000",[100,100,50,0,2*Math.PI],true,"#888000");
</pre>
</p>
</div>
<!-- LGraphics_drawArc end -->


<!-- LGraphics_drawRect start -->
<div id="LGraphics_drawRect" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>drawRect(
<br />&nbsp;&nbsp;&nbsp;&nbsp;thickness,
<br />&nbsp;&nbsp;&nbsp;&nbsp;lineColor,
<br />&nbsp;&nbsp;&nbsp;&nbsp;pointArray,
<br />&nbsp;&nbsp;&nbsp;&nbsp;isfill,
<br />&nbsp;&nbsp;&nbsp;&nbsp;color
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>画一个矩形</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>thickness：边缘线粗</p>
<p>lineColor：边缘线颜色</p>
<p>pointArray：[起始坐标x,起始坐标y,矩形宽width,矩形高height]</p>
<p>isfill：是否实心图形</p>
<p>color：实心颜色</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer = new LSprite();
addChild(backLayer);
backLayer.graphics.drawRect(2,"#ff0000",[10,10,50,100],true,"#880088");
</pre>
</p>
</div>
<!-- LGraphics_drawRect end -->


<!-- LGraphics_drawRoundRect start -->
<div id="LGraphics_drawRoundRect" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>drawRoundRect(
<br />&nbsp;&nbsp;&nbsp;&nbsp;thickness,
<br />&nbsp;&nbsp;&nbsp;&nbsp;lineColor,
<br />&nbsp;&nbsp;&nbsp;&nbsp;pointArray,
<br />&nbsp;&nbsp;&nbsp;&nbsp;isfill,
<br />&nbsp;&nbsp;&nbsp;&nbsp;color
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>画一个圆角矩形</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>thickness：边缘线粗</p>
<p>lineColor：边缘线颜色</p>
<p>pointArray：[起始坐标x,起始坐标y,矩形宽width,矩形高height,圆角半径]</p>
<p>isfill：是否实心图形</p>
<p>color：实心颜色</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer = new LSprite();
addChild(backLayer);
backLayer.graphics.drawRoundRect(2,"#ff0000",[10,10,50,100,5],true,"#880088");
</pre>
</p>
</div>
<!-- LGraphics_drawRoundRect end -->


<!-- LGraphics_drawVertices start -->
<div id="LGraphics_drawVertices" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>drawVertices(
<br />&nbsp;&nbsp;&nbsp;&nbsp;thickness,
<br />&nbsp;&nbsp;&nbsp;&nbsp;lineColor,
<br />&nbsp;&nbsp;&nbsp;&nbsp;vertices,
<br />&nbsp;&nbsp;&nbsp;&nbsp;isfill,
<br />&nbsp;&nbsp;&nbsp;&nbsp;color
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>根据顶点数组画任意图形</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>thickness：边缘线粗</p>
<p>lineColor：边缘线颜色</p>
<p>vertices：[[x,y],[x1,y1],[x2,y2]...]顶点个数必须大于3</p>
<p>isfill：是否实心图形</p>
<p>color：实心颜色</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer = new LSprite();
addChild(backLayer);
backLayer.graphics.drawVertices(2,"#ff0000",[[10,10],[50,100],[100,70]],true,"#880088");
</pre>
</p>
</div>
<!-- LGraphics_drawVertices end -->


<!-- LGraphics_drawTriangles start -->
<div id="LGraphics_drawTriangles" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>drawTriangles(vertices, indices, uvtData)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>呈现一组三角形（通常用于扭曲位图），并为其指定三维外观。drawTriangles() 方法使用一组 (u,v) 坐标将当前填充或位图填充映射到三角形面。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>vertices:由数字构成的矢量，其中的每一对数字将被视为一个坐标位置（一个 x, y 对）。vertices 参数是必需的。</p>
<p>indices:一个由整数或索引构成的矢量，其中每三个索引定义一个三角形。如果 indexes 参数为 null，则每三个顶点（vertices 矢量中的 6 对 x,y）定义一个三角形。否则，每个索引将引用一个顶点，即 vertices 矢量中的一对数字。例如，indexes[1] 引用 (vertices[2], vertices[3])。</p>
<p>uvtData:由用于应用纹理映射的标准坐标构成的矢量。每个坐标引用用于填充的位图上的一个点。每个顶点必须具有一个 UV 或一个 UVT 坐标。对于 UV 坐标，(0,0) 是位图的左上角，(1,1) 是位图的右下角。</p>
<p>thickness:分割完的三角形边框线粗</p>
<p>color:分割完的三角形边框颜色</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>因为此函数是模仿ActionScript的drawTriangles函数，所以更详细的解说，大家可以参照adobe的drawTriangles函数的解说<br /><a href="http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#drawTriangles()" target="_blank">http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3<br />/flash/display/Graphics.html#drawTriangles()</a></p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(20,"mylegend",500,400,main); 
var imgData = [ {name:"face",path:"face.jpg"} ]; 
var vertices; 
var indices; 
var uvtData; 
var imglist; 
var bitmapData,backLayer; 
function main(){ 
	LLoadManage.load(imgData,null,gameInit); 
} 
function gameInit(result){ 
	imglist = result; 
	bitmapData = new LBitmapData(imglist["face"]); 
	vertices = new Array(); 
	//在位图上定义了6个点 
	vertices.push(0, 0); 
	vertices.push(40, 90); 
	vertices.push(0, 200); 
	vertices.push(130, 30); 
	vertices.push(140, 90); 
	vertices.push(120,170); 
	indices = new Array(); 
	//这里用之前的6个点将图形分成4个三角形 
	indices.push(0, 3, 1); 
	indices.push(3, 1, 4);
	indices.push(1, 4, 2); 
	indices.push(4, 2, 5); 
	uvtData = new Array(); 
	//这里是定义6各点原来应在的位置 
	uvtData.push(0, 0); 
	uvtData.push(0, 0.5); 
	uvtData.push(0, 1); 
	uvtData.push(1, 0); 
	uvtData.push(1, 0.5); 
	uvtData.push(1, 1); 
	backLayer = new LSprite(); 
	backLayer.x=200; 
	addChild(backLayer); 
	backLayer.graphics.beginBitmapFill(bitmapData); 
	backLayer.graphics.drawTriangles(vertices, indices, uvtData); 
}
</pre>
</p>
</div>
<!-- LGraphics_drawTriangles end -->


<!-- LGraphics_beginBitmapFill start -->
<div id="LGraphics_beginBitmapFill" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>beginBitmapFill(bitmapData)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用位图图像填充绘图区</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>bitmapData：一个LBitmapData对象</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>使用beginBitmapFill函数后，再使用drawArc，drawRect等方法，就可以将位图图像填充绘图区</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(20,"mylegend",500,400,main); 
var imgData = [ {name:"face",path:"face.jpg"} ]; 
var imglist; 
var bitmapData,backLayer; 
function main(){ 
	LLoadManage.load(imgData,null,gameInit); 
} 
function gameInit(result){ 
	imglist = result; 
	bitmapData = new LBitmapData(imglist["face"]); 
	backLayer = new LSprite(); 
	addChild(backLayer); 
	backLayer.graphics.beginBitmapFill(bitmapData); 
	backLayer.graphics.drawArc(1, "#000", [150, 50, 50, 0, Math.PI * 2]); 
}
</pre>
</p>
</div>
<!-- LGraphics_beginBitmapFill end -->


<!-- LGraphics_add start -->
<div id="LGraphics_add" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>add(fun)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>在LGraphics中调用canvas的原绘图方法</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>fun：自定义函数</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
backLayer.graphics.add(function(){
	LGlobal.canvas.beginPath();
	LGlobal.canvas.moveTo(10,10);
	LGlobal.canvas.lineTo(30,30);
	LGlobal.canvas.lineWidth = 2;
	LGlobal.canvas.strokeStyle = "#FF0000";
	LGlobal.canvas.closePath();
	LGlobal.canvas.stroke();
});
</pre>
</p>
</div>
<!-- LGraphics_add end -->

<!-- LGraphics_clone start -->
<div id="LGraphics_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LGraphics</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>克隆一个LGraphics对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LGraphics_clone end -->


<!-- LButton_LButton start -->
<div id="LButton_LButton" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LButton</a></div>
<h2>LButton<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LSprite_LSprite')">LSprite</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LInteractiveObject_LInteractiveObject')">LInteractiveObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LButton(up,over)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>继承自LSprite类的一个子类，用来生成按钮</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>up:按钮的弹起状态(可以是LSprite类型或者LBitmap类型)</p>
<p>over:按钮的按下状态(可以是LSprite类型或者LBitmap类型)</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>buttonMode:控制按钮状态是否自动切换</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
function gameInit(event){
	backLayer = new LSprite();
	addChild(backLayer);
	//imglist是一个保存了Image的数组
	btn01 = new LButton(new LBitmap(new LBitmapData(imglist["replay_button_up"])),new LBitmap(new LBitmapData(imglist["replay_button_over"])));
	btn01.x=76;
	btn01.y=50;
	backLayer.addChild(btn01);
	btn02 = new LButton(new LBitmap(new LBitmapData(imglist["quit_button_up"])),new LBitmap(new LBitmapData(imglist["quit_button_over"])));
	btn02.x=76;
	btn02.y=100;
	backLayer.addChild(btn02);
	btn01.addEventListener(LMouseEvent.MOUSE_DOWN,onmousedown01);
	btn02.addEventListener(LMouseEvent.MOUSE_DOWN,onmousedown02);
}
function onmousedown01(event){
	alert("btn01onclick");
}
function onmousedown02(event){
	alert("btn02onclick");
}
</pre>
</p>
</div>
<!-- LButton_LButton end -->

<!-- LButton_clone start -->
<div id="LButton_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LButton</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>克隆一个LButton对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LButton_clone end -->

<!-- LTextField_LTextField start -->
<div id="LTextField_LTextField" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTextField</a></div>
<h2>LTextField<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LTextField()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用于创建显示对象以显示和输入文本</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>LTextField 类用于创建显示对象以显示和输入文本。</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>type:类型</p>
<p>x:坐标x</p>
<p>y:坐标y</p>
<p>text:作为文本字段中当前文本的字符串</p>
<p>font:文字的格式</p>
<p>size:文字大小</p>
<p>color:文字颜色</p>
<p>visible:是否可见，当设为false的时候，该LBitmap对象不可视，且内部所有处理都将停止</p>
<p>weight:文字粗细</p>
<p>stroke:文字的stroke属性，当为true时，可以设置lineWidth线宽</p>
<p>lineWidth:文字线宽，当stroke属性为true时有效</p>
<p>textAlign:文字左右对齐方式</p>
<p>textBaseline:文字上下对齐方式</p>
<p>filters:光晕效果，具体可参照LDropShadowFilter类的介绍</p>
<p>displayAsPassword:默认值为false。当通过setType(LTextFieldType.INPUT)将它变为一个输入框的同时，如果设置displayAsPassword属性为true，则会将其变成一个密码输入框。</p>
<p class="chapter">blendMode:<a href="javascript:void(0)" onclick="closeMenu('LBlendMode_LBlendMode')">LBlendMode</a> 类中的一个值，用于指定要使用的混合模式。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(20,"mylegend",500,400,main); 
var backLayer,title; 
function main(){ 
	backLayer = new LSprite(); 
	addChild(backLayer); 
	title = new LTextField(); 
	title.size = 30; 
	title.color = "#ff0000"; 
	title.text = "文字显示测试"; 
	backLayer.addChild(title); 
}
</pre>
</p>
</div>
<!-- LTextField_LTextField end -->


<!-- LTextField_setType start -->
<div id="LTextField_setType" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTextField</a></div>
<h2>setType(type,layer)</h2>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：当设置为LTextFieldType.INPUT的时候，LTextField会变为可输入状态</p>
<p>layer：LTextField变为可输入状态时的样式，不指定的时候为默认样式</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>注意：canvas标签的API没有输入框等功能，LTextField的可输入状态其实就是html的text文本框</p>
<p>当通过setType(LTextFieldType.INPUT)将它变为一个输入框的同时，如果设置displayAsPassword属性为true，则会将其变成一个密码输入框。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<h4>使用默认输入框样式</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var txt = newLTextField();
txt.setType(LTextFieldType.INPUT);
addChild(txt);
</pre>
</p>
<h4>自己指定输入框样式</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var labelLayer = new LSprite();
labelLayer.graphics.drawRect(1,"#000000",[0,0,150,20],true,"#FFFFFF");
var nameText = new LTextField();
nameText.x = 110;
nameText.y = 40;
nameText.setType(LTextFieldType.INPUT,labelLayer);
addChild(nameText);
</pre>
</p>
</div>
<!-- LTextField_setType end -->


<!-- LTextField_setWordWrap start -->
<div id="LTextField_setWordWrap" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTextField</a></div>
<h2>setWordWrap(value,height)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>自动换行设置</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：是否自动换行</p>
<p>height：自动换行时，每行文字的高度，不设置的话为默认高度</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">var showObject = new LSprite();
	showObject.graphics.drawRect(2,"#ff0000",[0,0,500,500],true,"#ff0000");
	var t = new LTextField();
	t.color = "#000000";
	t.stroke = true;
	t.size = 30;
	t.text = "文本自动换行测试，LTextField自动换行测试，文本自动换行测试，LTextField自动换行测试，文本自动换行测试，LTextField自动换行测试，文本自动换行测试，LTextField自动换行测试，文本自动换行测试，LTextField自动换行测试，文本自动换行测试，LTextField自动换行测试，文本自动换行测试，LTextField自动换行测试，文本自动换行测试，LTextField自动换行测试";
	//设置文本宽度
	t.width = 300;
	//设置自动换行，且文字高度为35
	t.setWordWrap(true,35);
	showObject.addChild(t);
</pre>
</p>
</div>
<!-- LTextField_setWordWrap end -->

<!-- LTextField_setMultiline start -->
<div id="LTextField_setMultiline" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTextField</a></div>
<h2>setMultiline(value,height)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>多行输入设定</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：是否支持多行输入</p>
<p>height：换行时，每行文字的高度，不设置的话为默认高度</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
	var backLayer = new LSprite();
	addChild(backLayer);
	
	var textLabel = new LTextField();
	textLabel.x = 10;
	textLabel.y = 150;
	textLabel.text = "这是一个多行输入框";
	backLayer.addChild(textLabel);

	var inputLayer = new LSprite();
	inputLayer.graphics.drawRect(1,"#000000",[0, 0, 400, 200]);
	var inputTwo = new LTextField();
	inputTwo.x = 10;
	inputTwo.y = 180;
	inputTwo.setType(LTextFieldType.INPUT,inputLayer);
	inputTwo.setMultiline(true);
	backLayer.addChild(inputTwo);
</pre>
</p>
</div>
<!-- LTextField_setMultiline end -->

<!-- LTextField_getWidth start -->
<div id="LTextField_getWidth" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTextField</a></div>
<h2>getWidth()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>得到当前文本的宽度</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
LGlobal.setDebug(true);
var txt = newLTextField();
txt.text = "文字显示测试"; 
addChild(txt);
trace("文字宽度为：" + txt.getWidth());
</pre>
</p>
</div>
<!-- LTextField_getWidth end -->


<!-- LTextField_getHeight start -->
<div id="LTextField_getHeight" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTextField</a></div>
<h2>getHeight()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>得到当前文本的高度</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
LGlobal.setDebug(true);
var txt = newLTextField();
txt.text = "文字显示测试"; 
addChild(txt);
trace("文字高度为：" + txt.getHeight());
</pre>
</p>
</div>
<!-- LTextField_getHeight end -->



<!-- LTextField_wind start -->
<div id="LTextField_wind" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTextField</a></div>
<h2>wind(listener)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>打字机状态逐字显示当前文本</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>listener：文字逐字显示结束后调用此函数</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>此函数，可以令文本逐字显示，在制作RPG游戏的对话等功能时很方便</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(20,"mylegend",500,400,main);
function main(){
	var txt = newLTextField();
	addChild(txt);
	txt.text = "这是一个逐字显示的打印机效果";
	txt.wind(isover);
}
function isover(){ 
	alert("打印机效果结束"); 
}
</pre>
</p>
</div>
<!-- LTextField_wind end -->

<!-- LTextField_clone start -->
<div id="LTextField_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTextField</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>克隆一个LTextField对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LTextField_clone end -->
<!-- LTextField_remove start -->
<div id="LTextField_remove" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTextField</a></div>
<h2>remove()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>从父容器中移除自己。</p>
</div>
<!-- LTextField_remove end -->

<!-- LDropShadowFilter_LDropShadowFilter start -->
<div id="LDropShadowFilter_LDropShadowFilter" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LDropShadowFilter</a></div>
<h2>LDropShadowFilter→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LDropShadowFilter(distance,angle,color,blur)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>给LSprite,LTextField,LBitmap等LDisplayObject的子类添加阴影(光晕)效果</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>distance:阴影长度，默认0</p>
<p>angle:阴影倾斜方向相对于对象的角度，默认0</p>
<p>color:阴影颜色，默认"#000000"</p>
<p>blur:阴影边缘的羽化量，默认20</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>四个参数都可以不填，如不填就会使用默认效果</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var title = new LTextField();
	title.x = 50;
	title.y = 190;
	addChild(title);
	title.size = 25;
	title.stroke=true;
	title.lineWidth = 2;
	title.font = "HG行書体";
	title.text = "lufylegend.js";
	var shadow = new LDropShadowFilter(5,45,"#000000");
	title.filters = [shadow];
</pre>
</p>
</div>
<!-- LDropShadowFilter_LDropShadowFilter end -->


<!-- LAnimation_LAnimation start -->
<div id="LAnimation_LAnimation" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimation</a></div>
<h2>LAnimation<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LSprite_LSprite')">LSprite</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LInteractiveObject_LInteractiveObject')">LInteractiveObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LAnimation(layer,data,list)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>实现简单动画的播放，原理是将一张大的图片，按照保存有坐标的二维数组保存的坐标来逐个显示。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>layer：LSprite显示层</p>
<p>data：LBitmapData对象</p>
<p>list：一个存有坐标的2维数组</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>LAnimation类实现简单动画的播放,用于制作人物行走等效果非常方便</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>layer:动画显示时，LAnimation的父级层</p>
<p>data:LBitmapData对象</p>
<p>list:坐标数组。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(100,"legend",800,450,main); 
var imgData = [ {name:"player",path:"player.png"} ]; 
var imglist; 
var backLayer,hero; 
function main(){ 
	LLoadManage.load(imgData,null,gameInit); 
} 
function gameInit(result){
	imglist = result; 
	backLayer = new LSprite(); 
	addChild(backLayer); 
	var list = LGlobal.divideCoordinate(256,256,4,4); 
	var data = new LBitmapData(imglist["player"],0,0,64,64); 
	hero = new LAnimation(backLayer,data,list); 
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe); 
} 
function onframe(){ 
	hero.onframe(); 
}
</pre>
</p>
</div>
<!-- LAnimation_LAnimation end -->


<!-- LAnimation_setAction start -->
<div id="LAnimation_setAction" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimation</a></div>
<h2>setAction(rowIndex,colIndex,mode,isMirror)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设置播放动画的行号，列号，播放顺序和镜像</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>rowIndex：播放动画的行号</p>
<p>colIndex：播放动画的列号</p>
<p>mode：(1,0,-1)分别代表(正序播放,静止,倒序播放)</p>
<p>isMirror：Boolean型，当设定为true的时候，图片显示为水平翻转后的镜像</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(100,"legend",800,450,main);
var imgData = [ {name:"player",path:"player.png"} ];
var imglist;
var backLayer,hero,index=0;
function main(){ 
	LLoadManage.load(imgData,null,gameInit);
} 
function gameInit(result){ 
	imglist = result;
	backLayer = new LSprite();
	addChild(backLayer);
	var list = LGlobal.divideCoordinate(256,256,4,4);
	var data = new LBitmapData(imglist["player"],0,0,64,64);
	hero = new LAnimation(backLayer,data,list);
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
} 
function onframe(){ 
	hero.onframe();
	if(index++ == 20){ 
		//设置播放行号为1，且不使用镜像，即播放第2行的图片 
		hero.setAction(1,0,1,false);
	}elseif(index == 40){ 
		//设置播放行号为1，且使用镜像，即播放第2行的图片的镜像 
		hero.setAction(1,0,1,true);
		index=0;
	} 
}
</pre>
</p>
</div>
<!-- LAnimation_setAction end -->


<!-- LAnimation_getAction start -->
<div id="LAnimation_getAction" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimation</a></div>
<h2>getAction()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>得到当前动画播放的行号，列号，播放顺序和镜像</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>返回值：结果数组[行号,列号,播放模式,是否为镜像]</p>
</div>
<!-- LAnimation_getAction end -->


<!-- LAnimation_onframe start -->
<div id="LAnimation_onframe" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimation</a></div>
<h2>onframe()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>按照坐标数组逐次播放一行图片</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(100,"legend",800,450,main);
var imgData = [ {name:"player",path:"player.png"} ];
var imglist;
var backLayer,hero,index=0;
function main(){ 
	LLoadManage.load(imgData,null,gameInit);
} 
function gameInit(result){ 
	imglist = result;
	backLayer = new LSprite();
	addChild(backLayer);
	var list = LGlobal.divideCoordinate(256,256,4,4);
	var data = new LBitmapData(imglist["player"],0,0,64,64);
	hero = new LAnimation(backLayer,data,list);
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
} 
function onframe(){ 
	hero.onframe();
}
</pre>
</p>
</div>
<!-- LAnimation_onframe end -->

<!-- LAnimation_clone start -->
<div id="LAnimation_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimation</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>克隆一个LAnimation对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LAnimation_clone end -->

<!-- LAnimation_addEventListener start -->
<div id="LAnimation_addEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimation</a></div>
<h2>addEventListener(type,listener)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>注册事件侦听器对象，以使侦听器能够接收事件通知</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型，LAnimation是LSprite的子类，所以首先支持LSprite的所有事件类型，另外还增加了LEvent.COMPLETE事件，表示一行图片组播放完成。</p>
<p>listener：处理事件的侦听器函数</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(100,"legend",800,450,main);
var imgData = [ {name:"player",path:"player.png"} ];
var imglist;
var backLayer,hero,index=0;
function main(){ 
	LLoadManage.load(imgData,null,gameInit);
} 
function gameInit(result){ 
	LGlobal.setDebug(true);
	imglist = result;
	backLayer = new LSprite();
	addChild(backLayer);
	var list = LGlobal.divideCoordinate(256,256,4,4);
	var data = new LBitmapData(imglist["player"],0,0,64,64);
	hero = new LAnimation(backLayer,data,list);
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	hero.addEventListener(LEvent.COMPLETE,oncomplete);
} 
function onframe(){ 
	hero.onframe();
}
//LEvent.COMPLETE事件接受一个参数，参数就是对象本身 
function oncomplete(anime){ 
	//利用debug模式输出ok，表示事件被触发 
	trace("ok"); 
}
</pre>
</p>
</div>
<!-- LAnimation_addEventListener end -->


<!-- LAnimation_removeEventListener start -->
<div id="LAnimation_removeEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimation</a></div>
<h2>removeEventListener(type,listener)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>删除侦听器。如果没有向对象注册任何匹配的侦听器，则对此方法的调用没有任何效果。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型，对应addEventListener加载事件时的类型</p>
<p>listener：要删除的侦听器对象</p>
</div>
<!-- LAnimation_removeEventListener end -->

<!-- LAnimationTimeline_LAnimationTimeline start -->
<div id="LAnimationTimeline_LAnimationTimeline" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimationTimeline</a></div>
<h2>LAnimationTimeline<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LAnimation_LAnimation')">LAnimation</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LSprite_LSprite')">LSprite</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LInteractiveObject_LInteractiveObject')">LInteractiveObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LAnimationTimeline(layer,data,list)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>动画播放。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>data：LBitmapData对象</p>
<p>list：一个存有坐标的2维数组</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>继承自LAnimation，是LAnimation的一个扩展，它的onframe函数是自动调用的，无需再额外调用本身的onframe，也就是说动画播放是自动的。</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>speed:动画播放速度调整。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
	backLayer = new LSprite();
	addChild(backLayer);
	var list = LGlobal.divideCoordinate(560,736,8,8);
	var data = new LBitmapData(imglist["player"],0,0,70,92);
	hero = new LAnimationTimeline(data,list);
	hero.speed = 3;
	hero.setLabel("down",0,0);
	hero.setLabel("left",1,0);
	hero.setLabel("right",2,0);
	hero.setLabel("up",3,0);
	hero.setLabel("left_down",4,0);
	hero.setLabel("right_down",5,0);
	hero.setLabel("left_up",6,0);
	hero.setLabel("right_up",7,0);
	backLayer.addChild(hero);
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LAnimationTimeline.html" target="_blank">http://lufylegend.com/demo/examples/LAnimationTimeline.html</a></p>
</div>
<!-- LAnimationTimeline_LAnimationTimeline end -->

<!-- LAnimationTimeline_setLabel start -->
<div id="LAnimationTimeline_setLabel" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimationTimeline</a></div>
<h2>setLabel(name,rowIndex,colIndex,mode,isMirror)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设定标签名</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>name：标签名</p>
<p>rowIndex：播放动画的行号</p>
<p>colIndex：播放动画的列号</p>
<p>mode：(1,0,-1)分别代表(正序播放,静止,倒序播放)</p>
<p>isMirror：Boolean型，当设定为true的时候，图片显示为水平翻转后的镜像</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
	backLayer = new LSprite();
	addChild(backLayer);
	var list = LGlobal.divideCoordinate(560,736,8,8);
	var data = new LBitmapData(imglist["player"],0,0,70,92);
	hero = new LAnimationTimeline(data,list);
	hero.speed = 3;
	hero.setLabel("down",0,0);
	hero.setLabel("left",1,0);
	hero.setLabel("right",2,0);
	hero.setLabel("up",3,0);
	hero.setLabel("left_down",4,0);
	hero.setLabel("right_down",5,0);
	hero.setLabel("left_up",6,0);
	hero.setLabel("right_up",7,0);
	backLayer.addChild(hero);
</pre>
</p>
</div>
<!-- LAnimationTimeline_setLabel end -->

<!-- LAnimationTimeline_play start -->
<div id="LAnimationTimeline_play" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimationTimeline</a></div>
<h2>play()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>在影片剪辑的时间轴中移动播放头。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LAnimationTimeline_play end -->

<!-- LAnimationTimeline_stop start -->
<div id="LAnimationTimeline_stop" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimationTimeline</a></div>
<h2>stop()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>停止影片剪辑中的播放头。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LAnimationTimeline_stop end -->

<!-- LAnimationTimeline_gotoAndPlay start -->
<div id="LAnimationTimeline_gotoAndPlay" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimationTimeline</a></div>
<h2>gotoAndPlay(name)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>从指定帧开始播放</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>name:表示播放头转到的帧标签的字符串。</p>
</div>
<!-- LAnimationTimeline_gotoAndPlay end -->

<!-- LAnimationTimeline_gotoAndStop start -->
<div id="LAnimationTimeline_gotoAndStop" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimationTimeline</a></div>
<h2>gotoAndStop(name)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将播放头移到影片剪辑的指定帧并停在那里。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>name:表示播放头转到的帧标签的字符串。</p>
</div>
<!-- LAnimationTimeline_gotoAndStop end -->

<!-- LAnimationTimeline_addFrameScript start -->
<div id="LAnimationTimeline_addFrameScript" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimationTimeline</a></div>
<h2>addFrameScript(name,func,params)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>在相应标签处增加脚本代码。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>name:帧标签的名字。</p>
<p>func:需要执行的脚本函数。</p>
<p>params:脚本函数的参数，数组。</p>
</div>
<!-- LAnimationTimeline_addFrameScript end -->

<!-- LAnimationTimeline_removeFrameScript start -->
<div id="LAnimationTimeline_removeFrameScript" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimationTimeline</a></div>
<h2>removeFrameScript(name)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>删除相应标签处的脚本代码。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>name:帧标签的名字。</p>
</div>
<!-- LAnimationTimeline_removeFrameScript end -->

<!-- LAnimationTimeline_clone start -->
<div id="LAnimationTimeline_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAnimationTimeline</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>克隆一个LAnimationTimeline对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>无</p>
</div>
<!-- LAnimationTimeline_clone end -->

<!-- LMedia_LMedia start -->
<div id="LMedia_LMedia" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMedia</a></div>
<h2>LMedia<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LMedia()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>多媒体播放</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>对Audio或video等多媒体对象进行操作。</p>
<p>LMedia对象是LSound对象和LVideo对象的父类，无法直接进行操作，需要对LSound对象和LVideo对象进行实例化，才能进行相关操作。</p>
</div>
<!-- LMedia_LMedia end -->

<!-- LMedia_load start -->
<div id="LMedia_load" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMedia</a></div>
<h2>load()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>启动从指定URL加载外部多媒体文件的过程。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>src:所读取文件的路径</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>由于各浏览器对多媒体文件的格式支持都不一样，所以参数src可以一次传入多个，不同的格式用逗号隔开，在不同浏览器下会选择该浏览器所支持的格式进行播放。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<h4>读取音频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var sound;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	sound = new LSound();
	sound.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LSound/kfighter.";
	sound.load(url+"mp3,"+url+"wav,"+url+"ogg");
}
function gameInit(e){
	sound.play();
}
</pre>
</p>
<h4>读取视频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var video;
function main(){
	LGlobal.setDebug(true);
	video = new LVideo();
	video.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LVideo/sample1.";
	video.load(url+"mp4,"+url+"3gp,"+url+"mov,"+url+"3g2,"+url+"ogv,"+url+"webm");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	video.x=20;
	video.y=100;
	var layer = new LSprite();
	layer.addChild(video);
	backLayer.addChild(layer);
	video.play();
}
</pre>
</p>
</div>
<!-- LMedia_load end -->

<!-- LMedia_play start -->
<div id="LMedia_play" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMedia</a></div>
<h2>play()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>播放该音频或视频。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>startTime:应开始播放的初始位置（以毫秒为单位）。</p>
<p>loops:定义在声道停止播放之前，声音循环的次数。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<h4>播放音频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var sound;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	sound = new LSound();
	sound.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LSound/kfighter.";
	sound.load(url+"mp3,"+url+"wav,"+url+"ogg");
}
function gameInit(e){
	sound.play();
}
</pre>
</p>
<h4>播放视频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var video;
function main(){
	LGlobal.setDebug(true);
	video = new LVideo();
	video.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LVideo/sample1.";
	video.load(url+"mp4,"+url+"3gp,"+url+"mov,"+url+"3g2,"+url+"ogv,"+url+"webm");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	video.x=20;
	video.y=100;
	var layer = new LSprite();
	layer.addChild(video);
	backLayer.addChild(layer);
	video.play();
}
</pre>
</p>
</div>
<!-- LMedia_play end -->

<!-- LMedia_stop start -->
<div id="LMedia_stop" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMedia</a></div>
<h2>stop()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>暂停播放该音频或视频。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<h4>暂停播放音频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var sound;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	sound = new LSound();
	sound.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LSound/kfighter.";
	sound.load(url+"mp3,"+url+"wav,"+url+"ogg");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	nowTime = new LTextField();
	nowTime.x = 100;
	nowTime.y = 50;
	backLayer.addChild(nowTime);
	nowTime.text = "00:00:00";
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);
}	
function onup(e){
	if(e.offsetX > 30 && e.offsetX < 60 && e.offsetY > 0 && e.offsetY < 30){
		if(sound.playing){
			sound.stop();
		}else{
			sound.play();
		}
	}else if(e.offsetX > 200 && e.offsetX < 350 && e.offsetY > 50 && e.offsetY < 90){
		sound.setVolume((e.offsetX - 200)/150);
	}
}
function onframe(){
	backLayer.graphics.clear();
	backLayer.graphics.drawRect(2,"#000000",[20,0,440,100]);
	backLayer.graphics.drawRect(1,"#000000",[70,10,380,30]);
	
	var sec = sound.data.currentTime % 60 >>>0;
	if(sec < 10)sec="0"+sec;
	var min = (sound.data.currentTime / 60)>>>0;
	if(min < 10)min="0"+min;
	nowTime.text = "00:"+min+":"+sec;
	backLayer.graphics.drawRect(1,"#000000",[70,10,380*(sound.data.currentTime/sound.length)>>>0,30],true,"#000000");
	if(sound.playing){
		backLayer.graphics.drawRect(2,"#000000",[30,10,10,30],true,"#000000");
		backLayer.graphics.drawRect(2,"#000000",[45,10,10,30],true,"#000000");
	}else{
		backLayer.graphics.drawVertices(1,"#000000",[[30,10],[60,25],[30,40]],true,"#000000");
	}
	for(var i=0;i<10;i++){
		var sx = 200 + i*15;
		var sy = 40 - i*4;
		if(sound.getVolume() > i*0.1){
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy],true,"#000000");
		}else{
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy]);
		}
	}
}
</pre>
</p>
<h4>暂停播放视频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var video;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	video = new LVideo();
	video.addEventListener(LEvent.COMPLETE,gameInit);
	//video.load("sample1.mp4");
	var url = "http://lufylegend.com/media/LVideo/sample1.";
	video.load(url+"mp4,"+url+"3gp,"+url+"mov,"+url+"3g2,"+url+"ogv,"+url+"webm");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	video.x=20;
	video.y=100;
	var layer = new LSprite();
	layer.addChild(video);
	backLayer.addChild(layer);
	
	nowTime = new LTextField();
	nowTime.x = 100;
	nowTime.y = 50;
	backLayer.addChild(nowTime);
	nowTime.text = "00:00:00";
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);
}	
function onup(e){
	if(e.offsetX > 30 && e.offsetX < 60 && e.offsetY > 0 && e.offsetY < 30){
		if(video.playing){
			video.stop();
		}else{
			video.play();
		}
	}else if(e.offsetX > 200 && e.offsetX < 350 && e.offsetY > 50 && e.offsetY < 90){
		video.setVolume((e.offsetX - 200)/150);
	}
}
function onframe(){
	backLayer.graphics.clear();
	backLayer.graphics.drawRect(2,"#000000",[20,0,440,100]);
	backLayer.graphics.drawRect(1,"#000000",[70,10,380,30]);
	
	var sec = video.data.currentTime % 60 >>>0;
	if(sec < 10)sec="0"+sec;
	var min = (video.data.currentTime / 60)>>>0;
	if(min < 10)min="0"+min;
	nowTime.text = "00:"+min+":"+sec;
	backLayer.graphics.drawRect(1,"#000000",[70,10,380*(video.data.currentTime/video.length)>>>0,30],true,"#000000");
	if(video.playing){
		backLayer.graphics.drawRect(2,"#000000",[30,10,10,30],true,"#000000");
		backLayer.graphics.drawRect(2,"#000000",[45,10,10,30],true,"#000000");
	}else{
		backLayer.graphics.drawVertices(1,"#000000",[[30,10],[60,25],[30,40]],true,"#000000");
	}
	for(var i=0;i<10;i++){
		var sx = 200 + i*15;
		var sy = 40 - i*4;
		if(video.getVolume() > i*0.1){
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy],true,"#000000");
		}else{
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy]);
		}
	}
}
</pre>
</p>
</div>
<!-- LMedia_stop end -->

<!-- LMedia_close start -->
<div id="LMedia_close" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMedia</a></div>
<h2>close()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>停止播放该音频或视频。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<h4>停止播放音频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var sound;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	sound = new LSound();
	sound.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LSound/kfighter.";
	sound.load(url+"mp3,"+url+"wav,"+url+"ogg");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	nowTime = new LTextField();
	nowTime.x = 100;
	nowTime.y = 50;
	backLayer.addChild(nowTime);
	nowTime.text = "00:00:00";
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);
}	
function onup(e){
	if(e.offsetX > 30 && e.offsetX < 60 && e.offsetY > 0 && e.offsetY < 30){
		if(sound.playing){
			sound.close();
		}else{
			sound.play();
		}
	}else if(e.offsetX > 200 && e.offsetX < 350 && e.offsetY > 50 && e.offsetY < 90){
		sound.setVolume((e.offsetX - 200)/150);
	}
}
function onframe(){
	backLayer.graphics.clear();
	backLayer.graphics.drawRect(2,"#000000",[20,0,440,100]);
	backLayer.graphics.drawRect(1,"#000000",[70,10,380,30]);
	
	var sec = sound.data.currentTime % 60 >>>0;
	if(sec < 10)sec="0"+sec;
	var min = (sound.data.currentTime / 60)>>>0;
	if(min < 10)min="0"+min;
	nowTime.text = "00:"+min+":"+sec;
	backLayer.graphics.drawRect(1,"#000000",[70,10,380*(sound.data.currentTime/sound.length)>>>0,30],true,"#000000");
	if(sound.playing){
		backLayer.graphics.drawRect(2,"#000000",[30,10,10,30],true,"#000000");
		backLayer.graphics.drawRect(2,"#000000",[45,10,10,30],true,"#000000");
	}else{
		backLayer.graphics.drawVertices(1,"#000000",[[30,10],[60,25],[30,40]],true,"#000000");
	}
	for(var i=0;i<10;i++){
		var sx = 200 + i*15;
		var sy = 40 - i*4;
		if(sound.getVolume() > i*0.1){
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy],true,"#000000");
		}else{
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy]);
		}
	}
}
</pre>
</p>
<h4>停止播放视频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var video;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	video = new LVideo();
	video.addEventListener(LEvent.COMPLETE,gameInit);
	//video.load("sample1.mp4");
	var url = "http://lufylegend.com/media/LVideo/sample1.";
	video.load(url+"mp4,"+url+"3gp,"+url+"mov,"+url+"3g2,"+url+"ogv,"+url+"webm");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	video.x=20;
	video.y=100;
	var layer = new LSprite();
	layer.addChild(video);
	backLayer.addChild(layer);
	
	nowTime = new LTextField();
	nowTime.x = 100;
	nowTime.y = 50;
	backLayer.addChild(nowTime);
	nowTime.text = "00:00:00";
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);
}	
function onup(e){
	if(e.offsetX > 30 && e.offsetX < 60 && e.offsetY > 0 && e.offsetY < 30){
		if(video.playing){
			video.close();
		}else{
			video.play();
		}
	}else if(e.offsetX > 200 && e.offsetX < 350 && e.offsetY > 50 && e.offsetY < 90){
		video.setVolume((e.offsetX - 200)/150);
	}
}
function onframe(){
	backLayer.graphics.clear();
	backLayer.graphics.drawRect(2,"#000000",[20,0,440,100]);
	backLayer.graphics.drawRect(1,"#000000",[70,10,380,30]);
	
	var sec = video.data.currentTime % 60 >>>0;
	if(sec < 10)sec="0"+sec;
	var min = (video.data.currentTime / 60)>>>0;
	if(min < 10)min="0"+min;
	nowTime.text = "00:"+min+":"+sec;
	backLayer.graphics.drawRect(1,"#000000",[70,10,380*(video.data.currentTime/video.length)>>>0,30],true,"#000000");
	if(video.playing){
		backLayer.graphics.drawRect(2,"#000000",[30,10,10,30],true,"#000000");
		backLayer.graphics.drawRect(2,"#000000",[45,10,10,30],true,"#000000");
	}else{
		backLayer.graphics.drawVertices(1,"#000000",[[30,10],[60,25],[30,40]],true,"#000000");
	}
	for(var i=0;i<10;i++){
		var sx = 200 + i*15;
		var sy = 40 - i*4;
		if(video.getVolume() > i*0.1){
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy],true,"#000000");
		}else{
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy]);
		}
	}
}
</pre>
</p>
</div>
<!-- LMedia_close end -->

<!-- LMedia_setVolume start -->
<div id="LMedia_setVolume" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMedia</a></div>
<h2>setVolume()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>改变该音频或视频的音量。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<h4>改变音频文件的音量</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var sound;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	sound = new LSound();
	sound.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LSound/kfighter.";
	sound.load(url+"mp3,"+url+"wav,"+url+"ogg");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	nowTime = new LTextField();
	nowTime.x = 100;
	nowTime.y = 50;
	backLayer.addChild(nowTime);
	nowTime.text = "00:00:00";
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);
}	
function onup(e){
	if(e.offsetX > 30 && e.offsetX < 60 && e.offsetY > 0 && e.offsetY < 30){
		if(sound.playing){
			sound.close();
		}else{
			sound.play();
		}
	}else if(e.offsetX > 200 && e.offsetX < 350 && e.offsetY > 50 && e.offsetY < 90){
		sound.setVolume((e.offsetX - 200)/150);
	}
}
function onframe(){
	backLayer.graphics.clear();
	backLayer.graphics.drawRect(2,"#000000",[20,0,440,100]);
	backLayer.graphics.drawRect(1,"#000000",[70,10,380,30]);
	
	var sec = sound.data.currentTime % 60 >>>0;
	if(sec < 10)sec="0"+sec;
	var min = (sound.data.currentTime / 60)>>>0;
	if(min < 10)min="0"+min;
	nowTime.text = "00:"+min+":"+sec;
	backLayer.graphics.drawRect(1,"#000000",[70,10,380*(sound.data.currentTime/sound.length)>>>0,30],true,"#000000");
	if(sound.playing){
		backLayer.graphics.drawRect(2,"#000000",[30,10,10,30],true,"#000000");
		backLayer.graphics.drawRect(2,"#000000",[45,10,10,30],true,"#000000");
	}else{
		backLayer.graphics.drawVertices(1,"#000000",[[30,10],[60,25],[30,40]],true,"#000000");
	}
	for(var i=0;i<10;i++){
		var sx = 200 + i*15;
		var sy = 40 - i*4;
		if(sound.getVolume() > i*0.1){
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy],true,"#000000");
		}else{
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy]);
		}
	}
}
</pre>
</p>
<h4>改变视频文件的音量</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var video;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	video = new LVideo();
	video.addEventListener(LEvent.COMPLETE,gameInit);
	//video.load("sample1.mp4");
	var url = "http://lufylegend.com/media/LVideo/sample1.";
	video.load(url+"mp4,"+url+"3gp,"+url+"mov,"+url+"3g2,"+url+"ogv,"+url+"webm");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	video.x=20;
	video.y=100;
	var layer = new LSprite();
	layer.addChild(video);
	backLayer.addChild(layer);
	
	nowTime = new LTextField();
	nowTime.x = 100;
	nowTime.y = 50;
	backLayer.addChild(nowTime);
	nowTime.text = "00:00:00";
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);
}	
function onup(e){
	if(e.offsetX > 30 && e.offsetX < 60 && e.offsetY > 0 && e.offsetY < 30){
		if(video.playing){
			video.close();
		}else{
			video.play();
		}
	}else if(e.offsetX > 200 && e.offsetX < 350 && e.offsetY > 50 && e.offsetY < 90){
		video.setVolume((e.offsetX - 200)/150);
	}
}
function onframe(){
	backLayer.graphics.clear();
	backLayer.graphics.drawRect(2,"#000000",[20,0,440,100]);
	backLayer.graphics.drawRect(1,"#000000",[70,10,380,30]);
	
	var sec = video.data.currentTime % 60 >>>0;
	if(sec < 10)sec="0"+sec;
	var min = (video.data.currentTime / 60)>>>0;
	if(min < 10)min="0"+min;
	nowTime.text = "00:"+min+":"+sec;
	backLayer.graphics.drawRect(1,"#000000",[70,10,380*(video.data.currentTime/video.length)>>>0,30],true,"#000000");
	if(video.playing){
		backLayer.graphics.drawRect(2,"#000000",[30,10,10,30],true,"#000000");
		backLayer.graphics.drawRect(2,"#000000",[45,10,10,30],true,"#000000");
	}else{
		backLayer.graphics.drawVertices(1,"#000000",[[30,10],[60,25],[30,40]],true,"#000000");
	}
	for(var i=0;i<10;i++){
		var sx = 200 + i*15;
		var sy = 40 - i*4;
		if(video.getVolume() > i*0.1){
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy],true,"#000000");
		}else{
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy]);
		}
	}
}
</pre>
</p>
</div>
<!-- LMedia_setVolume end -->

<!-- LMedia_getVolume start -->
<div id="LMedia_getVolume" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMedia</a></div>
<h2>getVolume()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>获取该音频或视频的音量。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<h4>获取音频文件的音量</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var sound;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	sound = new LSound();
	sound.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LSound/kfighter.";
	sound.load(url+"mp3,"+url+"wav,"+url+"ogg");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	nowTime = new LTextField();
	nowTime.x = 100;
	nowTime.y = 50;
	backLayer.addChild(nowTime);
	nowTime.text = "00:00:00";
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);
}	
function onup(e){
	if(e.offsetX > 30 && e.offsetX < 60 && e.offsetY > 0 && e.offsetY < 30){
		if(sound.playing){
			sound.close();
		}else{
			sound.play();
		}
	}else if(e.offsetX > 200 && e.offsetX < 350 && e.offsetY > 50 && e.offsetY < 90){
		sound.setVolume((e.offsetX - 200)/150);
	}
}
function onframe(){
	backLayer.graphics.clear();
	backLayer.graphics.drawRect(2,"#000000",[20,0,440,100]);
	backLayer.graphics.drawRect(1,"#000000",[70,10,380,30]);
	
	var sec = sound.data.currentTime % 60 >>>0;
	if(sec < 10)sec="0"+sec;
	var min = (sound.data.currentTime / 60)>>>0;
	if(min < 10)min="0"+min;
	nowTime.text = "00:"+min+":"+sec;
	backLayer.graphics.drawRect(1,"#000000",[70,10,380*(sound.data.currentTime/sound.length)>>>0,30],true,"#000000");
	if(sound.playing){
		backLayer.graphics.drawRect(2,"#000000",[30,10,10,30],true,"#000000");
		backLayer.graphics.drawRect(2,"#000000",[45,10,10,30],true,"#000000");
	}else{
		backLayer.graphics.drawVertices(1,"#000000",[[30,10],[60,25],[30,40]],true,"#000000");
	}
	for(var i=0;i<10;i++){
		var sx = 200 + i*15;
		var sy = 40 - i*4;
		if(sound.getVolume() > i*0.1){
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy],true,"#000000");
		}else{
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy]);
		}
	}
}
</pre>
</p>
<h4>获取视频文件的音量</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var video;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	video = new LVideo();
	video.addEventListener(LEvent.COMPLETE,gameInit);
	//video.load("sample1.mp4");
	var url = "http://lufylegend.com/media/LVideo/sample1.";
	video.load(url+"mp4,"+url+"3gp,"+url+"mov,"+url+"3g2,"+url+"ogv,"+url+"webm");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	video.x=20;
	video.y=100;
	var layer = new LSprite();
	layer.addChild(video);
	backLayer.addChild(layer);
	
	nowTime = new LTextField();
	nowTime.x = 100;
	nowTime.y = 50;
	backLayer.addChild(nowTime);
	nowTime.text = "00:00:00";
	backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);
}	
function onup(e){
	if(e.offsetX > 30 && e.offsetX < 60 && e.offsetY > 0 && e.offsetY < 30){
		if(video.playing){
			video.close();
		}else{
			video.play();
		}
	}else if(e.offsetX > 200 && e.offsetX < 350 && e.offsetY > 50 && e.offsetY < 90){
		video.setVolume((e.offsetX - 200)/150);
	}
}
function onframe(){
	backLayer.graphics.clear();
	backLayer.graphics.drawRect(2,"#000000",[20,0,440,100]);
	backLayer.graphics.drawRect(1,"#000000",[70,10,380,30]);
	
	var sec = video.data.currentTime % 60 >>>0;
	if(sec < 10)sec="0"+sec;
	var min = (video.data.currentTime / 60)>>>0;
	if(min < 10)min="0"+min;
	nowTime.text = "00:"+min+":"+sec;
	backLayer.graphics.drawRect(1,"#000000",[70,10,380*(video.data.currentTime/video.length)>>>0,30],true,"#000000");
	if(video.playing){
		backLayer.graphics.drawRect(2,"#000000",[30,10,10,30],true,"#000000");
		backLayer.graphics.drawRect(2,"#000000",[45,10,10,30],true,"#000000");
	}else{
		backLayer.graphics.drawVertices(1,"#000000",[[30,10],[60,25],[30,40]],true,"#000000");
	}
	for(var i=0;i<10;i++){
		var sx = 200 + i*15;
		var sy = 40 - i*4;
		if(video.getVolume() > i*0.1){
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy],true,"#000000");
		}else{
			backLayer.graphics.drawRect(1,"#000000",[sx,50,10,40-sy]);
		}
	}
}
</pre>
</p>
</div>
<!-- LMedia_getVolume end -->

<!-- LMedia_addEventListener start -->
<div id="LMedia_addEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMedia</a></div>
<h2>addEventListener()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>注册事件侦听器对象，以使侦听器能够接收事件通知。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型。</p>
<p>listener：处理事件的侦听器函数。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<h4>读取音频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var sound;
var nowTime;
function main(){
	LGlobal.setDebug(true);
	sound = new LSound();
	sound.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LSound/kfighter.";
	sound.load(url+"mp3,"+url+"wav,"+url+"ogg");
}
function gameInit(e){
	sound.play();
}
</pre>
</p>
<h4>读取视频文件</h4>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(30,"legend",480,480,main);
var backLayer;
var video;
function main(){
	LGlobal.setDebug(true);
	video = new LVideo();
	video.addEventListener(LEvent.COMPLETE,gameInit);
	var url = "http://lufylegend.com/media/LVideo/sample1.";
	video.load(url+"mp4,"+url+"3gp,"+url+"mov,"+url+"3g2,"+url+"ogv,"+url+"webm");
}
function gameInit(e){
	backLayer = new LSprite();
	addChild(backLayer);
	video.x=20;
	video.y=100;
	var layer = new LSprite();
	layer.addChild(video);
	backLayer.addChild(layer);
	video.play();
}
</pre>
</p>
</div>
<!-- LMedia_addEventListener end -->

<!-- LMedia_removeEventListener start -->
<div id="LMedia_removeEventListener" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMedia</a></div>
<h2>removeEventListener()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>删除侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器，则对此方法的调用没有任何效果。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type：事件的类型。</p>
<p>listener：要删除的侦听器对象。</p>
</div>
<!-- LMedia_removeEventListener end -->

<!-- LSound_LSound start -->
<div id="LSound_LSound" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSound</a></div>
<h2>LSound<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LMedia_LMedia')">LMedia</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LSound()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>操作音频文件。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>url：外部音频文件的路径(实例化的时候也可以为空，实例化之后利用load函数来指定。)。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>LSound对象继承自LMedia，可以使用LMedia的所有函数。</p>
</div>
<!-- LSound_LSound end -->

<!-- LVideo_LVideo start -->
<div id="LVideo_LVideo" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LSound</a></div>
<h2>LVideo<br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LMedia_LMedia')">LMedia</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LDisplayObject_LDisplayObject')">LDisplayObject</a><br /><br />→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LEventDispatcher_LEventDispatcher')">LEventDispatcher</a>→<a class="chapter" href="javascript:void(0)" onclick="closeMenu('LObject_LObject')">LObject</a></h2>
<h2>LVideo()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>操作视频文件。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>url：外部视频文件的路径(实例化的时候也可以为空，实例化之后利用load函数来指定。)。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>LVideo对象继承自LMedia，可以使用LMedia的所有函数。于LSound对象不同的是，LVideo是可视对象，可以通过addChild加载到LSprite对象里，显示到画面上。</p>
</div>
<!-- LSound_LSound end -->

<!-- LBox2d_LBox2d start -->
<div id="LBox2d_LBox2d" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>LBox2d(gravity,doSleep,drawScale)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>box2dweb实例化</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>gravity：世界重力向量(例：[0,9.8])，可省略</p>
<p>doSleep：物体是否可休眠，可省略。</p>
<p>drawScale：缩放比例，可省略</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>在lufylegend库件里使用box2dweb，在使用box2d相关属性的时候，必须加入下面一行代码，将box2dweb实例化。</p>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
LGlobal.box2d = newLBox2d();
</pre>
</p>
</div>
<!-- LBox2d_LBox2d end -->


<!-- LBox2d_setEvent start -->
<div id="LBox2d_setEvent" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>setEvent(type_value,fun_value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>为box2d加载事件监听器</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>type_value：加载的事件的类型</p>
<p>fun_value：侦听函数</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>事件的类型，可以使用下面四个事件类型</p>
<p>LEvent.BEGIN_CONTACT：刚刚碰撞开始的时候会触发这个函数</p>
<p>LEvent.END_CONTACT:碰撞结束的时候会触发这个函数</p>
<p>LEvent.POST_SOLVE:碰撞后会处理这个函数</p>
<p>LEvent.PRE_SOLVE:碰撞前即将碰撞的时候</p>
</div>
<!-- LBox2d_setEvent end -->


<!-- LBox2d_setDistanceJoint start -->
<div id="LBox2d_setDistanceJoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>setDistanceJoint(
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefA, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefB
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>给两个物体添加距离关节</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>b2BodyDefA：表示物体A</p>
<p>b2BodyDefB：表示物体B</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>距离关节是一个最简单的关节，它约束了两个物体之间的距离，两个物体之间的距离关节一旦建立，它们的距离就将会固定住。当你拖拽其中一个物体，另一个物体为了保证距离固定不变，也会跟着移动起来。</p>
<p>下面是几篇相关的文章</p>
<p>HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7654607" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7654607</a></p>
<p>HTML5游戏开发-Box2dWeb应用(二)-碰撞以及各种连接<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7672110" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7672110</a></p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer,cLayer;
function main(){	
	LGlobal.setDebug(true);	
	backLayer = new LSprite();	
	addChild(backLayer);	

	LGlobal.box2d = new LBox2d();
	cLayer = new LSprite();
	cLayer.x = 300;
	cLayer.y = 390;
	backLayer.addChild(cLayer);
	cLayer.addBodyPolygon(600,10,0,5,0.4,0.2);
	//加入一个动态的矩形物体1
	box01 = new LSprite();
	box01.x = 200;
	box01.y = 100;
	backLayer.addChild(box01);
	box01.addBodyPolygon(100,60,1,5,0.4,0.2);
	box01.setBodyMouseJoint(true);
	//加入一个动态的矩形物体2
	box02 = new LSprite();
	box02.x = 400;
	box02.y = 100;
	backLayer.addChild(box02);
	box02.addBodyPolygon(100,60,1,5,0.4,0.2);
	box02.setBodyMouseJoint(true);
	//加入一个距离关节
	LGlobal.box2d.setDistanceJoint(box01.box2dBody, box02.box2dBody); 
}

</pre>
</p>
</div>
<!-- LBox2d_setDistanceJoint end -->


<!-- LBox2d_setRevoluteJoint start -->
<div id="LBox2d_setRevoluteJoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>setRevoluteJoint(
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefA, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefB, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;limits,
<br />&nbsp;&nbsp;&nbsp;&nbsp;motors
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>给两个物体添加旋转关节</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>b2BodyDefA：表示物体A</p>
<p>b2BodyDefB：表示物体B</p>
<p>limits：表示旋转角度限制数组，这个数组的内容是：[最小角度,最大角度]，它在这里可以限制旋转关节旋转的角度</p>
<p>motors：表示马达数组，这个数组的内容是：[力度,速度]，马达可以有很多用途，在这里，它可以是关节自动进行旋转</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>旋转关节可以强制两个物体共享一个描点，这样就能使它们进行相对旋转</p>
<p>下面是几篇相关的文章</p>
<p>HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7654607" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7654607</a></p>
<p>HTML5游戏开发-Box2dWeb应用(二)-碰撞以及各种连接<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7672110" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7672110</a></p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer,cLayer;
function main(){	
	LGlobal.setDebug(true);	
	backLayer = new LSprite();	
	addChild(backLayer);	

	LGlobal.box2d = new LBox2d();
	cLayer = new LSprite();
	cLayer.x = 300;
	cLayer.y = 390;
	backLayer.addChild(cLayer);
	cLayer.addBodyPolygon(600,10,0,5,0.4,0.2);
	//加入一个动态的圆形物体1
	box01 = new LSprite();
	box01.x = 250;
	box01.y = 200;
	backLayer.addChild(box01);
	box01.addBodyCircle(100,0,0,1,1,0.4,0.2);
	box01.setBodyMouseJoint(true);
	//加入一个静态的圆形物体2
	box02 = new LSprite();
	box02.x = 250;
	box02.y = 150;
	backLayer.addChild(box02);
	box02.addBodyCircle(10,0,0,0,1,0.4,0.2);
	//加入一个旋转关节
	LGlobal.box2d.setRevoluteJoint(box01.box2dBody, box02.box2dBody ,[-360,720*5],[450,2]);
}

</pre>
</p>
</div>
<!-- LBox2d_setRevoluteJoint end -->


<!-- LBox2d_setPulleyJoint start -->
<div id="LBox2d_setPulleyJoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>setPulleyJoint(
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefA, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefB, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;anchorA, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;anchorB, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;ratio
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>给两个物体添加滑轮关节</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>b2BodyDefA：表示物体A</p>
<p>b2BodyDefB：表示物体B</p>
<p>anchorA：表示物体A相关的控制参数数组，这个数组的内容是：[x,y,length]，使用setPulleyJoint建立滑轮关节的时候，会自动以物体本身的中心作为描点，anchorA数组的前两个元素，决定了关节被建立时物体相对于这个描点的位置，anchorA数组的最后一个元素，决定了左侧绳子的长度</p>
<p>anchorB：表示物体B相关的控制参数数组，该数组中各元素的含义同anchorA</p>
<p>ratio：表示两边绳子的比例系数，比如在上面的例子中，如果将比例系数设置为2，那么左边的物体上升2的时候，右边物体只下降1</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>要滑轮关节，可以先创建一个滑轮，然后将两个物体通过一条“绳子”接通，当一个物体上升或者下降的时候，因为“绳子”的长短不变，另一个物体就会相应的下降或者上升</p>
<p>下面是几篇相关的文章</p>
<p>HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7654607" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7654607</a></p>
<p>HTML5游戏开发-Box2dWeb应用(二)-碰撞以及各种连接<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7672110" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7672110</a></p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer,cLayer;
function main(){	
	LGlobal.setDebug(true);	
	backLayer = new LSprite();	
	addChild(backLayer);	

	LGlobal.box2d = new LBox2d();
	cLayer = new LSprite();
	cLayer.x = 300;
	cLayer.y = 390;
	backLayer.addChild(cLayer);
	cLayer.addBodyPolygon(600,10,0,5,0.4,0.2);
	//加入一个动态的圆形物体1
	box01 = new LSprite();
	box01.x = 200;
	box01.y = 100;
	backLayer.addChild(box01);
	box01.addBodyCircle(20,0,0,1,1,0.5,0.6);
	box01.setBodyMouseJoint(true);
	//加入一个动态的圆形物体2
	box02 = new LSprite();
	box02.x = 300;
	box02.y = 100;
	backLayer.addChild(box02);
	box02.addBodyCircle(20,0,0,1,1,0.4,0.2);
	box02.setBodyMouseJoint(true);
	//加入一个滑轮关节
	LGlobal.box2d.setPulleyJoint(box01.box2dBody, box02.box2dBody,[0,50,300],[0,100,300],1.0);
}
</pre>
</p>
</div>
<!-- LBox2d_setPulleyJoint end -->


<!-- LBox2d_setPrismaticJoint start -->
<div id="LBox2d_setPrismaticJoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>setPrismaticJoint (
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefA, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefB, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;vec, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;limits, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;motors
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>给两个物体添加移动关节</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>b2BodyDefA：表示物体A</p>
<p>b2BodyDefB：表示物体B</p>
<p>vec：表示物体A和物体B的相对移动方向，它是一个数组[x,y]，设置不同的比例，可以建立不同方向上的移动关节</p>
<p>limits：表示移动的相对长度限制数组，这个数组的内容是：[正向最大长度,反向最大角度]，在这里它可以限制两个物体相对移动的最大长度</p>
<p>motors：表示马达数组，这个数组的内容是：[正向力度,反向力度]，这个马达可以给移动关节添加一个持续的力。比如在上面的例子中，如果将马达参数设置为[0,10]，你会发现，物体不是向下移动了，而是向上移动，即使你用鼠标将物体拖拽到下面，它也会因为马达的力而再次向上移动</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>对于移动关节来说，它会有一个自由度，也就是说它限制了两个物体的移动范畴，即只能沿指定轴相对移动</p>
<p>下面是几篇相关的文章</p>
<p>HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7654607" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7654607</a></p>
<p>HTML5游戏开发-Box2dWeb应用(二)-碰撞以及各种连接<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7672110" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7672110</a></p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer,cLayer;
function main(){	
	LGlobal.setDebug(true);	
	backLayer = new LSprite();	
	addChild(backLayer);	

	LGlobal.box2d = new LBox2d();
	cLayer = new LSprite();
	cLayer.x = 300;
	cLayer.y = 390;
	backLayer.addChild(cLayer);
	cLayer.addBodyPolygon(600,10,0,5,0.4,0.2);
	//加入一个静态的圆形物体1
	box01 = new LSprite();
	box01.x = 200;
	box01.y = 100;
	backLayer.addChild(box01);
	box01.addBodyCircle(20,0,0,0,1,0.5,0.6);
	//加入一个动态的圆形物体2
	box02 = new LSprite();
	box02.x = 200;
	box02.y = 100;
	backLayer.addChild(box02);
	box02.addBodyCircle(20,0,0,1,1,0.4,0.2);
	box02.setBodyMouseJoint(true);
	//加入一个移动关节
	LGlobal.box2d.setPrismaticJoint(box01.box2dBody, box02.box2dBody,[0,1],[-5,2.5],[1,0]);
}
</pre>
</p>
</div>
<!-- LBox2d_setPrismaticJoint end -->


<!-- LBox2d_setGearJoint start -->
<div id="LBox2d_setGearJoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>setGearJoint (
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefA, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefB,
<br />&nbsp;&nbsp;&nbsp;&nbsp;ratio, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;revoluteJointDef,
<br />&nbsp;&nbsp;&nbsp;&nbsp;prismaticJointDef
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>添加齿轮关节</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>b2BodyDefA：表示物体A</p>
<p>b2BodyDefB：表示物体B</p>
<p>ratio：表示齿轮的比例系数，这个数值越小，物体A旋转一周使得物体B移动的距离也就越大，如果这个值设置得很大，那么物体A旋转几周才能使B移动一段很短的距离</p>
<p>revoluteJointDef：齿轮关节中的物体A和轴心所建立的旋转关节</p>
<p>prismaticJointDef：齿轮关节中的物体B和齿轮轴心所建立的移动连接</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>使用Box2d可以模拟齿轮功能，这样就可以轻松地建立复杂的机械模型等，齿轮关节相对来说稍微复杂一些，因为它需要结合旋转关节和移动关节</p>
<p>下面是几篇相关的文章</p>
<p>HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7654607" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7654607</a></p>
<p>HTML5游戏开发-Box2dWeb应用(二)-碰撞以及各种连接<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7672110" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7672110</a></p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer,cLayer;
function main(){	
	LGlobal.setDebug(true);	
	backLayer = new LSprite();	
	addChild(backLayer);	

	LGlobal.box2d = new LBox2d();
	cLayer = new LSprite();
	cLayer.x = 300;
	cLayer.y = 390;
	backLayer.addChild(cLayer);
	cLayer.addBodyPolygon(600,10,0,5,0.4,0.2);
	//加入一个动态的圆形物体1
	box01 = new LSprite();
	box01.x = 200;
	box01.y = 200;
	backLayer.addChild(box01);
	box01.addBodyCircle(100,0,0,1,1,0.5,0.6);
	box01.setBodyMouseJoint(true);
	//加入一个静态的圆形物体2
	box02 = new LSprite();
	box02.x = 200;
	box02.y = 200;
	backLayer.addChild(box02);
	box02.addBodyCircle(20,0,0,0,1,0.4,0.2);
	//加入一个动态的圆形物体3
	box03 = new LSprite();
	box03.x = 500;
	box03.y = 200;
	backLayer.addChild(box03);
	box03.addBodyCircle(20,0,0,1,1,0.5,0.6);
	box03.setBodyMouseJoint(true);
	//在物体1和物体2之间建立旋转关节
	var revoluteJoint = LGlobal.box2d.setRevoluteJoint(box02.box2dBody, box01.box2dBody);
	//在物体2和物体3之间建立移动关节
	var prismaticJoint = LGlobal.box2d.setPrismaticJoint(box03.box2dBody,box02.box2dBody,[1,0],[-5,2.5],[1,0]);
	//利用建立好的旋转关节和移动关节，在物体1和物体3之间建立齿轮关节
	LGlobal.box2d.setGearJoint(box01.box2dBody, box03.box2dBody,2,revoluteJoint,prismaticJoint);
}

</pre>
</p>
</div>
<!-- LBox2d_setGearJoint end -->


<!-- LBox2d_setLineJoint start -->
<div id="LBox2d_setLineJoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>setLineJoint (
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefA, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefB, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;vec, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;limits,
<br />&nbsp;&nbsp;&nbsp;&nbsp;motors
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>给两个物体添加悬挂关节</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>b2BodyDefA：表示物体A</p>
<p>b2BodyDefB：表示物体B</p>
<p>vec：表示物体B相对与悬挂点的移动方向，这个悬挂点就是物体B的初始位置，vec是一个数组[x,y]，设置不同的比例，可以建立不同方向上的悬挂关节。这和移动关节比较类似，大家可以试着改变这个参数的值，来体验一下它们的具体区别</p>
<p>limits：表示移动的相对长度限制数组，这个数组的内容是：[正向最大长度,反向最大角度]，在这里它可以限制两个物体相对移动的最大长度</p>
<p>motors：表示马达数组，这个数组的内容是：[正向力度,反向力度]，这个马达可以给移动关节添加一个持续的力，比如在上面的例子中，如果将马达参数设置为[0,10]，你会发现，物体不是向下移动了，而是向上移动，即使你用鼠标将物体拖拽到下面，它也会因为马达的力而再次向上移动</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>悬挂关节类似于一个垂直的移动关节，它将一个物体悬挂到了另一物体上</p>
<p>下面是几篇相关的文章</p>
<p>HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7654607" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7654607</a></p>
<p>HTML5游戏开发-Box2dWeb应用(二)-碰撞以及各种连接<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7672110" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7672110</a></p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer,cLayer;
function main(){	
	LGlobal.setDebug(true);	
	backLayer = new LSprite();	
	addChild(backLayer);	

	LGlobal.box2d = new LBox2d();
	cLayer = new LSprite();
	cLayer.x = 300;
	cLayer.y = 390;
	backLayer.addChild(cLayer);
	cLayer.addBodyPolygon(600,10,0,5,0.4,0.2);
	//加入一个静态的圆形物体1
	box01 = new LSprite();
	box01.x = 200;
	box01.y = 100;
	backLayer.addChild(box01);
	box01.addBodyCircle(20,0,0,0,1,0.5,0.6);
	//加入一个动态的圆形物体2
	box02 = new LSprite();
	box02.x = 200;
	box02.y = 200;
	backLayer.addChild(box02);
	box02.addBodyCircle(20,0,0,1,1,0.4,0.2);
	box02.setBodyMouseJoint(true);
	//加入一个悬挂关节
	LGlobal.box2d.setLineJoint(box01.box2dBody, box02.box2dBody,[0,1],[-2,2],[200,10]);
}

</pre>
</p>
</div>
<!-- LBox2d_setLineJoint end -->


<!-- LBox2d_setWeldJoint start -->
<div id="LBox2d_setWeldJoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>setWeldJoint (
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefA, 
<br />&nbsp;&nbsp;&nbsp;&nbsp;b2BodyDefB
<br />)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>给两个物体添加焊接关节</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>b2BodyDefA：表示捆绑对象物体A</p>
<p>b2BodyDefB：表示捆绑对象物体B</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>焊接关节相当于捆绑，就是将两个物体牢牢地绑在一起，使其成为一个物体</p>
<p>下面是几篇相关的文章</p>
<p>HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7654607" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7654607</a></p>
<p>HTML5游戏开发-Box2dWeb应用(二)-碰撞以及各种连接<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7672110" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7672110</a></p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer,cLayer;
function main(){	
	LGlobal.setDebug(true);	
	backLayer = new LSprite();	
	addChild(backLayer);	

	LGlobal.box2d = new LBox2d();
	cLayer = new LSprite();
	cLayer.x = 300;
	cLayer.y = 390;
	backLayer.addChild(cLayer);
	cLayer.addBodyPolygon(600,10,0,5,0.4,0.2);
	//加入一个动态的圆形物体1
	box01 = new LSprite();
	box01.x = 200;
	box01.y = 100;
	backLayer.addChild(box01);
	box01.addBodyCircle(50,0,0,1,1,0.4,0.2);
	box01.setBodyMouseJoint(true);
	//加入一个动态的圆形物体2
	box02 = new LSprite();
	box02.x = 250;
	box02.y = 100;
	backLayer.addChild(box02);
	box02.addBodyCircle(50,0,0,1,1,0.4,0.2);
	box02.setBodyMouseJoint(true);
	//加入一个焊接关节
	LGlobal.box2d.setWeldJoint(box01.box2dBody, box02.box2dBody);
}

</pre>
</p>
</div>
<!-- LBox2d_setWeldJoint end -->


<!-- LBox2d_setBodyMouseJoint start -->
<div id="LBox2d_setBodyMouseJoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LBox2d</a></div>
<h2>setBodyMouseJoint (flag)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>给两个物体添加鼠标关节,响应鼠标拖拽物体</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>b2BodyDefA：表示捆绑对象物体A</p>
<p>b2BodyDefB：表示捆绑对象物体B</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>使用lufylegend.js引擎后，鼠标拖拽变得非常简便了，只需要调用LSprite对象的setBodyMouseJoint方法即可</p>
<p>下面是几篇相关的文章</p>
<p>HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7654607" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7654607</a></p>
<p>HTML5游戏开发-Box2dWeb应用(二)-碰撞以及各种连接<br />
<a href="http://blog.csdn.net/lufy_legend/article/details/7672110" target="_blank">http://blog.csdn.net/lufy_legend/article/details/7672110</a></p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var backLayer,cLayer;
function main(){	
	//打开debug模式
	LGlobal.setDebug(true);	
	backLayer = new LSprite();	
	addChild(backLayer);	
	//Box2d初始化
	LGlobal.box2d = new LBox2d();
	//加入一个静态的矩形物体
	cLayer = new LSprite();
	cLayer.x = 300;
	cLayer.y = 390;
	backLayer.addChild(cLayer);
	cLayer.addBodyPolygon(600,10,0,5,0.4,0.2);
	//加入一个动态的矩形物体
	cLayer = new LSprite();
	cLayer.x = 300;
	cLayer.y = 100;
	backLayer.addChild(cLayer);
	cLayer.addBodyPolygon(100,60,1,5,0.4,0.2);
	//鼠标拖拽有效
	cLayer.setBodyMouseJoint(true);
}

</pre>
</p>
</div>
<!-- LBox2d_setBodyMouseJoint end -->


<!-- LLoadManage_load start -->
<div id="LLoadManage_load" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LLoadManage</a></div>
<h2>load($list,$onupdate,$oncomplete)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>读取文件组</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>$list：文件数组</p>
<p>$onupdate：读取中调用函数，一般用来显示游戏进度</p>
<p>$oncomplete：全部文件读取完成后调用函数</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>这个函数可以接收一个数组，然后加载数组里的所有文件</p>
<p>其中的$list数组的格式如下</p>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loadData = [
{path:"../jquery.js",type:"js"},
{path:"./js/GameBody.js",type:"js"},
{name:"num.0",path:"./images/0.png"},
{name:"num.1",path:"./images/1.png"},
{name:"ico_sina",path:"./images/ico_sina.gif"}
];
</pre>
</p>
<p>$onupdate这个参数一般和LoadingSample1，LoadingSample2，LoadingSample3等一起连用类显示加载进度</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var loadData = [
{path:"../jquery.js",type:"js"},
{path:"./js/GameBody.js",type:"js"},
{name:"num.0",path:"./images/0.png"},
{name:"num.1",path:"./images/1.png"},
{name:"ico_sina",path:"./images/ico_sina.gif"}
];
var datalist=[]; 
function main(){ 
	loadingLayer = new LoadingSample1(); 
	addChild(loadingLayer); 
	LLoadManage.load( 
		imgData, 
		function(progress){ 
			loadingLayer.setProgress(progress); 
		}, 
		gameInit 
	); 
} 
function gameInit(result){ 
	datalist = result; 
	removeChild(loadingLayer); 
	loadingLayer = null; 
	//加载完成，开始进行其他处理 
}
</pre>
</p>
</div>
<!-- LLoadManage_load end -->


<!-- LoadingSample1_LoadingSample1 start -->
<div id="LoadingSample1_LoadingSample1" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LoadingSample</a></div>
<h2>LoadingSample1()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用来显示进度条的对象之一</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var imgData = new Array(
	{name:"img01",path:"./images/img01.png"}, 
	{name:"img02",path:"./images/img02.png"}, 
	{name:"img03",path:"./images/img03.png"} 
);
var imglist; 
function main(){ 
	loadingLayer = new LoadingSample1(); 
	addChild(loadingLayer); 
	LLoadManage.load( 
		imgData, 
		function(progress){ 
			loadingLayer.setProgress(progress); 
		}, 
		gameInit 
	); 
} 
function gameInit(result){ 
	imglist = result; 
	removeChild(loadingLayer); 
	loadingLayer = null; 
	//加载完成，开始进行其他处理 
}
</pre>
</p>
</div>
<!-- LoadingSample1_LoadingSample1 end -->


<!-- LoadingSample_setProgress start -->
<div id="LoadingSample_setProgress" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LoadingSample</a></div>
<h2>setProgress(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设置进度条的长度百分比</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：长度百分比</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
var imgData = new Array(
	{name:"img01",path:"./images/img01.png"}, 
	{name:"img02",path:"./images/img02.png"}, 
	{name:"img03",path:"./images/img03.png"} 
);
var imglist; 
function main(){ 
	loadingLayer = new LoadingSample1(); 
	addChild(loadingLayer); 
	LLoadManage.load( 
		imgData, 
		function(progress){ 
			loadingLayer.setProgress(progress); 
		}, 
		gameInit 
	); 
} 
function gameInit(result){ 
	imglist = result; 
	removeChild(loadingLayer); 
	loadingLayer = null; 
	//加载完成，开始进行其他处理 
}
</pre>
</p>
</div>
<!-- LoadingSample_setProgress end -->


<!-- LoadingSample2_LoadingSample2 start -->
<div id="LoadingSample2_LoadingSample2" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LoadingSample</a></div>
<h2>LoadingSample2()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用来显示进度条的对象之一</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>参考<a href="javascript:void(0)" onclick="closeMenu('LoadingSample1_LoadingSample1')">LoadingSample1</a></p>
</div>
<!-- LoadingSample2_LoadingSample2 end -->


<!-- LoadingSample3_LoadingSample3 start -->
<div id="LoadingSample3_LoadingSample3" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LoadingSample</a></div>
<h2>LoadingSample3()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用来显示进度条的对象之一</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>参考<a href="javascript:void(0)" onclick="closeMenu('LoadingSample1_LoadingSample1')">LoadingSample1</a></p>
</div>
<!-- LoadingSample3_LoadingSample3 end -->


<!-- LoadingSample4_LoadingSample4 start -->
<div id="LoadingSample4_LoadingSample4" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LoadingSample</a></div>
<h2>LoadingSample4()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用来显示进度条的对象之一</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>参考<a href="javascript:void(0)" onclick="closeMenu('LoadingSample1_LoadingSample1')">LoadingSample1</a></p>
</div>
<!-- LoadingSample4_LoadingSample4 end -->


<!-- LoadingSample5_LoadingSample5 start -->
<div id="LoadingSample5_LoadingSample5" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LoadingSample</a></div>
<h2>LoadingSample5()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>用来显示进度条的对象之一</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>参考<a href="javascript:void(0)" onclick="closeMenu('LoadingSample1_LoadingSample1')">LoadingSample1</a></p>
</div>
<!-- LoadingSample5_LoadingSample5 end -->


<!-- L_MOUSE_DOWN start -->
<div id="L_MOUSE_DOWN" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>鼠标事件(LMouseEvent)</a></div>
<h2>LMouseEvent.MOUSE_DOWN</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>鼠标按下事件</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>offsetX:点击位置x坐标</p>
<p>offsetY:点击位置y坐标</p>
<p>clickTarget:点击对象</p>
<p>selfX:相对于点击对象的点击位置x坐标</p>
<p>selfY:相对于点击对象的点击位置y坐标</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>lufylegend.js引擎内有LMouseEvent.TOUCH_START , LMouseEvent.TOUCH_END , LMouseEvent.TOUCH_MOVE
三个移动触屏事件，不过引擎可以自动转换pc和手机的事件，就是说开发的时候只需要添加
LMouseEvent.MOUSE_DOWN ， LMouseEvent.MOUSE_MOVE和LMouseEvent.MOUSE_UP
这三个鼠标事件，当游戏运行在手机上的时候，会自动将鼠标事件转换为touch事件。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(80,"back",800,480,main); 
function main(){ 
	var layer = new LSprite(); 
	addChild(layer); 
	layer.graphics.drawRect(1,"black",[50, 200, 200, 20],true,"#ffffff");
	backLayer.addEventListener(LMouseEvent.MOUSE_DOWN, onmousedown);
} 
function onmousedown(event){ 
	alert("点击位置：" + event.offsetX + "," + event.offsetY);
	alert("点击对象：" + event.clickTarget); 
	alert("相对于点击对象的点击位置：" + event.selfX + "," + event.selfY);
}
</pre>
</p>
</div>
<!-- L_MOUSE_DOWN end -->


<!-- L_MOUSE_UP start -->
<div id="L_MOUSE_UP" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>鼠标事件(LMouseEvent)</a></div>
<h2>LMouseEvent.MOUSE_UP</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>鼠标弹起事件</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>offsetX:点击位置x坐标</p>
<p>offsetY:点击位置y坐标</p>
<p>clickTarget:点击对象</p>
<p>selfX:相对于点击对象的点击位置x坐标</p>
<p>selfY:相对于点击对象的点击位置y坐标</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>lufylegend.js引擎内有LMouseEvent.TOUCH_START , LMouseEvent.TOUCH_END , LMouseEvent.TOUCH_MOVE
三个移动触屏事件，不过引擎可以自动转换pc和手机的事件，就是说开发的时候只需要添加
LMouseEvent.MOUSE_DOWN ， LMouseEvent.MOUSE_MOVE和LMouseEvent.MOUSE_UP
这三个鼠标事件，当游戏运行在手机上的时候，会自动将鼠标事件转换为touch事件。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(80,"back",800,480,main); 
function main(){ 
	var layer = new LSprite(); 
	addChild(layer); 
	layer.graphics.drawRect(1,"black",[50, 200, 200, 20],true,"#ffffff");
	backLayer.addEventListener(LMouseEvent.MOUSE_UP, onmouseup);
} 
function onmouseup(event){ 
	alert("点击位置：" + event.offsetX + "," + event.offsetY);
	alert("点击对象：" + event.clickTarget); 
	alert("相对于点击对象的点击位置：" + event.selfX + "," + event.selfY);
}
</pre>
</p>
</div>
<!-- L_MOUSE_UP end -->


<!-- L_MOUSE_MOVE start -->
<div id="L_MOUSE_MOVE" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>鼠标事件(LMouseEvent)</a></div>
<h2>LMouseEvent.MOUSE_MOVE</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>鼠标移动事件</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>offsetX:点击位置x坐标</p>
<p>offsetY:点击位置y坐标</p>
<p>clickTarget:点击对象</p>
<p>selfX:相对于点击对象的点击位置x坐标</p>
<p>selfY:相对于点击对象的点击位置y坐标</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>lufylegend.js引擎内有LMouseEvent.TOUCH_START , LMouseEvent.TOUCH_END , LMouseEvent.TOUCH_MOVE
三个移动触屏事件，不过引擎可以自动转换pc和手机的事件，就是说开发的时候只需要添加
LMouseEvent.MOUSE_DOWN ， LMouseEvent.MOUSE_MOVE和LMouseEvent.MOUSE_UP
这三个鼠标事件，当游戏运行在手机上的时候，会自动将鼠标事件转换为touch事件。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(80,"back",800,480,main); 
function main(){ 
	var layer = new LSprite(); 
	addChild(layer); 
	layer.graphics.drawRect(1,"black",[50, 200, 200, 20],true,"#ffffff");
	backLayer.addEventListener(LMouseEvent.MOUSE_MOVE, onmousemove);
} 
function onmousemove(event){ 
	alert("点击位置：" + event.offsetX + "," + event.offsetY);
	alert("点击对象：" + event.clickTarget); 
	alert("相对于点击对象的点击位置：" + event.selfX + "," + event.selfY);
}
</pre>
</p>
</div>
<!-- L_MOUSE_MOVE end -->

<!-- L_MOUSE_OVER start -->
<div id="L_MOUSE_OVER" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>鼠标事件(LMouseEvent)</a></div>
<h2>LMouseEvent.MOUSE_OVER</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>鼠标移入事件</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>offsetX:点击位置x坐标</p>
<p>offsetY:点击位置y坐标</p>
<p>clickTarget:点击对象</p>
<p>selfX:相对于点击对象的点击位置x坐标</p>
<p>selfY:相对于点击对象的点击位置y坐标</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>此事件是利用MOUSE_MOVE来完成的，所以如果想在鼠标容器下使用，需要进行下面设置。</p>
<p>LMouseEventContainer.set(LMouseEvent.MOUSE_MOVE,true);</p>
<p>注意设置的是MOUSE_MOVE，而不是MOUSE_OVER</p>
</div>
<!-- L_MOUSE_OVER end -->

<!-- L_MOUSE_OUT start -->
<div id="L_MOUSE_OUT" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>鼠标事件(LMouseEvent)</a></div>
<h2>LMouseEvent.MOUSE_OUT</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>鼠标移出事件</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>offsetX:点击位置x坐标</p>
<p>offsetY:点击位置y坐标</p>
<p>clickTarget:点击对象</p>
<p>selfX:相对于点击对象的点击位置x坐标</p>
<p>selfY:相对于点击对象的点击位置y坐标</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>此事件是利用MOUSE_MOVE来完成的，所以如果想在鼠标容器下使用，需要进行下面设置。</p>
<p>LMouseEventContainer.set(LMouseEvent.MOUSE_MOVE,true);</p>
<p>注意设置的是MOUSE_MOVE，而不是MOUSE_OUT</p>
<p>如果没有开启鼠标容器的话，被加载这个事件的对象的父容器必须要大于该对象，并且该对象要完全在父容器内部。</p>
</div>
<!-- L_MOUSE_OUT end -->

<!-- L_DOUBLE_CLICK start -->
<div id="L_DOUBLE_CLICK" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>鼠标事件(LMouseEvent)</a></div>
<h2>LMouseEvent.DOUBLE_CLICK</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>鼠标双击事件</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>offsetX:点击位置x坐标</p>
<p>offsetY:点击位置y坐标</p>
<p>clickTarget:点击对象</p>
<p>selfX:相对于点击对象的点击位置x坐标</p>
<p>selfY:相对于点击对象的点击位置y坐标</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>如果想在鼠标容器下使用，需要进行下面设置。</p>
<p>LMouseEventContainer.set(LMouseEvent.DOUBLE_CLICK,true);</p>
</div>
<!-- L_DOUBLE_CLICK end -->

<!-- L_MOUSE_LMouseEventContainer start -->
<div id="L_MOUSE_LMouseEventContainer" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>鼠标事件(LMouseEvent)</a></div>
<h2>LMouseEventContainer</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>LMouseEventContainer是一个鼠标容器，一般的鼠标事件需要遍历所有的可视对象，对程序消耗比较大，此对象可以降低鼠标的消耗，但是，缺点是无法使用显示对象对鼠标事件进行遮挡。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>下面的代码可以开启相应的鼠标容器，如果开启了鼠标容器，在添加相应的鼠标事件的时候，会将鼠标事件添加到鼠标容器中，来降低鼠标事件对程序的消耗。开发过程中，可以根据需要来使用鼠标容器。</p>
<p>LMouseEventContainer.set(LMouseEvent.MOUSE_DOWN,true);使用鼠标容器来添加MOUSE_DOWN事件。</p>
<p>LMouseEventContainer.set(LMouseEvent.MOUSE_UP,true);使用鼠标容器来添加MOUSE_UP事件。</p>
<p>LMouseEventContainer.set(LMouseEvent.MOUSE_MOVE,true);使用鼠标容器来添加MOUSE_MOVE事件。</p>
<div class="hr"></div>
<p>LMouseEventContainer.dispatchAllEvent：设定鼠标事件是否触发所有事件。默认值为false，即不支持触发所有事件。</p>
</div>
<!-- L_MOUSE_LMouseEventContainer end -->

<!-- L_MOUSE_LMultitouch start -->
<div id="L_MOUSE_LMultitouch" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>鼠标事件(LMouseEvent)</a></div>
<h2>LMultitouch</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>多点触屏</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>使用多点触屏，需要提前进行以下设定</p>
<pre  class='brush: javascript' style="background:#ffffff;">
LMultitouch.inputMode = LMultitouchInputMode.TOUCH_POINT;
</pre>
<p>然后可以通过event.touchPointID来确定触屏的ID了。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
LMultitouch.inputMode = LMultitouchInputMode.TOUCH_POINT;
layer.addEventListener(LMouseEvent.MOUSE_DOWN,ondown);
function ondown(event){ 
	console.log("id：" + event.touchPointID);
	console.log("x：" + event.offsetX);
	console.log("y：" + event.offsetY);
}
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LMultitouch.html" target="_blank">http://lufylegend.com/demo/examples/LMultitouch.html</a></p>
</div>
<!-- L_MOUSE_LMultitouch end -->

<!-- L_KEY_DOWN start -->
<div id="L_KEY_DOWN" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>键盘事件(LKeyboardEvent)</a></div>
<h2>LKeyboardEvent.KEY_DOWN</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>键盘按下事件</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>keyCode:按下的键的键控代码值。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(80,"back",800,480,main); 
function main(){ 
	var layer = new LSprite(); 
	addChild(layer); 
	layer.graphics.drawRect(1,"black",[50, 200, 200, 20],true,"#ffffff");
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_DOWN,onkeydown);
} 
function onkeydown(event){ 
	alert("按键：" + event.keyCode);
}
</pre>
</p>
</div>
<!-- L_KEY_DOWN end -->


<!-- L_KEY_UP start -->
<div id="L_KEY_UP" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>键盘事件(LKeyboardEvent)</a></div>
<h2>LKeyboardEvent.KEY_UP</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>键盘释放事件</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>keyCode:释放的键的键控代码值。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(80,"back",800,480,main); 
function main(){ 
	var layer = new LSprite(); 
	addChild(layer); 
	layer.graphics.drawRect(1,"black",[50, 200, 200, 20],true,"#ffffff");
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_UP,onkeyup);
} 
function onkeyup(event){ 
	alert("按键：" + event.keyCode);
}
</pre>
</p>
</div>
<!-- L_KEY_UP end -->

<!-- L_ENTER_FRAME start -->
<div id="L_ENTER_FRAME" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>时间轴事件</a></div>
<h2>LEvent.ENTER_FRAME</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>时间轴事件的属性</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>被添加的时间轴回调函数中，可接收一个参数，这个参数就是调用时间轴的对象本身。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(80,"back",800,480,main); 
function main(){ 
	LGlobal.setDebug(true);
	var layer = new LSprite(); 
	layer.name = "enterFrameTest";
	addChild(layer); 
	layer.addEventListener(LEvent.ENTER_FRAME, onframe);
} 
function onframe(DisplayObject){ 
	trace(DisplayObject.name + "对象的时间轴");
}
</pre>
</p>
</div>
<!-- L_ENTER_FRAME end -->


<!-- LTweenLite_to start -->
<div id="LTweenLite_to" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTweenLite</a></div>
<h2>LTweenLite.to($target,$duration,$vars)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>对LSprite或LBitmap对象进行缓动操作，可以进行连续缓动</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>$target：进行缓动的对象</p>
<p>$duration：缓动执行的时间</p>
<p>$vars：Object对象，通过属性值，来存储各种属性参数用于缓动</p>
<div class="hr"></div>
<h3>■参数$vars的可用属性：</h3>
<p>x:x坐标</p>
<p>y:y坐标</p>
<p>delay:延时时间</p>
<p>rotate:旋转角度</p>
<p>alpha:透明度</p>
<p>scaleX:x轴缩放</p>
<p>scaleY:y轴缩放</p>
<p>loop:缓动是否循环</p>
<p>ease:缓动函数</p>
<p>onStart:缓动开始时调用的函数(onStart可以使用参数，参数为操作缓动的对象)</p>
<p>onUpdate:缓动过程中调用的函数(onUpdate可以使用参数，参数为操作缓动的对象)</p>
<p>onComplete:缓动结束后调用的函数(onComplete可以使用参数，参数为操作缓动的对象)</p>
<p>ease缓动函数： o.easeIn,o.easeOut,o.easeInOut</p>
<p>※其中的o可以是Quad，Cubic，Quart,Quint,Sine,Strong,Expo,Circ,Elastic,Back,Bounce。</p>
<p>※如果ease缓动函数没有设定，则默认为匀速运动。</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>tween：缓动对象本身</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"legend",480,400,main);
var box,box2;
function main(){
	box = new LSprite();
	box.x = box.y = 100;
	addChild(box);
	box.graphics.drawArc(5,"#333333",[0,0,10,0,2*Math.PI],true,"#333333");

	box2 = new LSprite();
	box2.x = box2.y = 150;
	addChild(box2);
	box2.graphics.drawArc(5,"#333333",[0,0,10,0,2*Math.PI],true,"#333333");

	var tween = LTweenLite.to(box,1,{x:200,ease:Strong.easeOut})
	.to(box,1,{x:100,ease:Strong.easeOut})
	.to(box,1,{x:200,ease:Strong.easeOut})
	.to(box,1,{x:100,ease:Strong.easeOut})
	.to(box2,1,{x:250,ease:Strong.easeOut})
	.to(box2,1,{x:150,ease:Strong.easeOut});
}
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LTweenLite_to.html" target="_blank">http://lufylegend.com/demo/examples/LTweenLite_to.html</a></p>
</div>
<!-- LTweenLite_to end -->

<!-- LTweenLite_remove start -->
<div id="LTweenLite_remove" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTweenLite</a></div>
<h2>LTweenLite.remove(tween)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>对LSprite或LBitmap对象进行缓动操作</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>tween：需要移除的缓动对象</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"legend",480,400,main);
var box,box2;
function main(){
	box = new LSprite();
	box.x = box.y = 100;
	addChild(box);
	box.graphics.drawArc(5,"#333333",[0,0,10,0,2*Math.PI],true,"#333333");

	var tween = LTweenLite.to(box,1,{x:200,ease:Strong.easeOut});
	
	LTweenLite.remove(tween);
}
</pre>
</p>
</div>
<!-- LTweenLite_remove end -->

<!-- LTweenLite_removeAll start -->
<div id="LTweenLite_removeAll" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTweenLite</a></div>
<h2>LTweenLite.removeAll(tween)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>对LSprite或LBitmap对象进行缓动操作</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>tween：需要移除的缓动对象</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
init(50,"legend",480,400,main);
var box,box2;
function main(){
	box = new LSprite();
	box.x = box.y = 100;
	addChild(box);
	box.graphics.drawArc(5,"#333333",[0,0,10,0,2*Math.PI],true,"#333333");

	var tween = LTweenLite.to(box,1,{x:200,ease:Strong.easeOut});
	
	LTweenLite.removeAll();
}
</pre>
</p>
</div>
<!-- LTweenLite_removeAll end -->

<!-- LPoint_LPoint start -->
<div id="LPoint_LPoint" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>LPoint(x,y)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>LPoint 对象表示二维坐标系统中的某个位置，其中 x 表示水平轴，y 表示垂直轴。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x：x 坐标</p>
<p>y：y 坐标</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>x：x 坐标</p>
<p>y：y 坐标</p>
</div>
<!-- LPoint_LPoint end -->
<!-- LPoint_distance start -->
<div id="LPoint_distance" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>LPoint.distance(pt1,pt1)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>[静态] 返回 pt1 和 pt2 之间的距离。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>pt1：第一个点</p>
<p>pt2：第二个点</p>
</div>
<!-- LPoint_distance end -->
<!-- LPoint_distance2 start -->
<div id="LPoint_distance2" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>LPoint.distance2(x1,y1,x2,y2)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>[静态] 返回 (x1,y1) 和 (x2,y2) 之间的距离。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x1：点1的x座标</p>
<p>y1：点1的y座标</p>
<p>x2：点2的x座标</p>
<p>y2：点2的y座标</p>
</div>
<!-- LPoint_distance2 end -->
<!-- LPoint_interpolate start -->
<div id="LPoint_interpolate" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>LPoint.interpolate(pt1,pt2,f)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>[静态] 确定两个指定点之间的点。参数 f 确定新的内插点相对于参数 pt1 和 pt2 指定的两个端点所处的位置。参数 f 的值越接近 1.0，则内插点就越接近第一个点（参数 pt1）。参数 f 的值越接近 0，则内插点就越接近第二个点（参数 pt2）。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>pt1：第一个点</p>
<p>pt2：第二个点</p>
<p>f：两个点之间的内插级别。表示新点将位于 pt1 和 pt2 连成的直线上的什么位置。如果 f=1，则返回 pt1；如果 f=0，则返回 pt2。</p>
</div>
<!-- LPoint_interpolate end -->
<!-- LPoint_polar start -->
<div id="LPoint_polar" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>LPoint.polar(len,angle)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>[静态] 将一对极坐标转换为笛卡尔点坐标。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>len：极坐标对的长度。</p>
<p>angle：极坐标对的角度（以弧度表示）。</p>
</div>
<!-- LPoint_polar end -->
<!-- LPoint_length start -->
<div id="LPoint_length" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>length()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>从 (0,0) 到此点的线段长度。</p>
</div>
<!-- LPoint_length end -->
<!-- LPoint_add start -->
<div id="LPoint_add" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>add(v)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将另一个点的坐标添加到此点的坐标以创建一个新点。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>v：要添加的点。</p>
</div>
<!-- LPoint_add end -->
<!-- LPoint_clone start -->
<div id="LPoint_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>创建此 Point 对象的副本。</p>
</div>
<!-- LPoint_clone end -->
<!-- LPoint_setTo start -->
<div id="LPoint_setTo" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>setTo(xa,ya)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将 Point 的成员设置为指定值。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>xa：要将 Point 设置为的值。</p>
<p>ya：要将 Point 设置为的值。</p>
</div>
<!-- LPoint_setTo end -->
<!-- LPoint_copyFrom start -->
<div id="LPoint_copyFrom" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>copyFrom(sourcePoint)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将源 Point 对象中的所有点数据复制到调用方 Point 对象中。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>sourcePoint：要从中复制数据的 Point 对象。</p>
</div>
<!-- LPoint_copyFrom end -->
<!-- LPoint_equals start -->
<div id="LPoint_equals" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>equals(toCompare)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>确定两个点是否相同。如果两个点具有相同的 x 和 y 值，则它们是相同的点。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>toCompare：要比较的点。</p>
</div>
<!-- LPoint_equals end -->
<!-- LPoint_normalize start -->
<div id="LPoint_normalize" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>normalize(thickness)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将 (0,0) 和当前点之间的线段缩放为设定的长度。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>thickness：缩放值。例如，如果当前点为 (0,5) 并且您将它规范化为 1，则返回的点位于 (0,1) 处。</p>
</div>
<!-- LPoint_normalize end -->
<!-- LPoint_offset start -->
<div id="LPoint_offset" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>offset(dx,dy)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>按指定量偏移 LPoint 对象。dx 的值将添加到 x 的原始值中以创建新的 x 值。dy 的值将添加到 y 的原始值中以创建新的 y 值。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>dx：水平坐标 x 的偏移量。</p>
<p>dy：垂直坐标 y 的偏移量。</p>
</div>
<!-- LPoint_offset end -->
<!-- LPoint_subtract start -->
<div id="LPoint_subtract" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LPoint</a></div>
<h2>subtract(v)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>从此点的坐标中减去另一个点的坐标以创建一个新点。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>v：要减去的点。</p>
</div>
<!-- LPoint_subtract end -->

<!-- LTransitionManager_LTransitionManager start -->
<div id="LTransitionManager_LTransitionManager" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTransitionManager</a></div>
<h2>LTransitionManager(displayObject)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>定义动画效果。 它允许您将九种动画效果中的一种应用于影片剪辑。 
在创建自定义组件时，您可以使用 LTransitionManager 类将动画效果应用于组件可视界面中的影片剪辑。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>displayObject：要应用过渡效果的对象</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>您可以通过两种方式创建 TransitionManager 实例：</p>
<p>请调用 LTransitionManager.start() 方法。 这是创建 LTransitionManager 实例最简单的方式，建议使用该方式。</p>
<p>使用 new 运算符。 然后可以指定过渡属性，并通过调用 LTransitionManager.startTransition() 方法在另一步中启动过渡效果。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
LTransitionManager.start(displayObject, {type:LTransition.Zoom, direction:LTransition.IN, duration:1, easing:Bounce.easeOut});
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LTransitionManager.html" target="_blank">http://lufylegend.com/demo/examples/LTransitionManager.html</a></p>
</div>
<!-- LTransitionManager_LTransitionManager end -->

<!-- LTransitionManager_start start -->
<div id="LTransitionManager_start" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTransitionManager</a></div>
<h2>start(content,transParams)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>[静态] 创建新的 LTransitionManager 实例，指定目标对象，应用过渡并启动该过渡。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>content：要应用过渡效果的对象。</p>
<p>transParams：在对象内传递的参数的集合。 transParams 对象应包含 type 参数，该参数（后面跟有 direction、duration 和 easing 参数）
指示要应用的过渡效果类。 此外，还必须包括该过渡效果类所必需的任何参数。 例如，LIris过渡效果类需要附加的 startPoint 和 shape 参数。 
因此，除了每个过渡都需要的 type、duration 和 easing 参数外，您还应该添加 LIris 效果所需要的 startPoint 和 shape 参数（添加到 transParams 对象）。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
LTransitionManager.start(displayObject, {type:LTransition.Zoom, direction:LTransition.IN, duration:1, easing:Bounce.easeOut});
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LTransitionManager.html" target="_blank">http://lufylegend.com/demo/examples/LTransitionManager.html</a></p>
</div>
<!-- LTransitionManager_start end -->

<!-- LTransitionManager_startTransition start -->
<div id="LTransitionManager_startTransition" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LTransitionManager</a></div>
<h2>startTransition(content,transParams)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>[静态] 创建新的 LTransitionManager 实例，指定目标对象，应用过渡并启动该过渡。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>transParams：在对象内传递的参数的集合。 transParams 对象应包含 type 参数，该参数（后面跟有 direction、duration 和 easing 参数）
指示要应用的过渡效果类。 此外，还必须包括该过渡效果类所必需的任何参数。 例如，LIris过渡效果类需要附加的 startPoint 和 shape 参数。 
因此，除了每个过渡都需要的 type、duration 和 easing 参数外，您还应该添加 LIris 效果所需要的 startPoint 和 shape 参数（添加到 transParams 对象）。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
  var myTransitionManager = new LTransitionManager(displayObject);
  myTransitionManager.startTransition({type:LTransition.Zoom, direction:LTransition.IN, duration:1, easing:Bounce.easeOut});
</pre>
</p>
<div class="hr"></div>
<h3>■测试连接：</h3>
<p><a href="http://lufylegend.com/demo/examples/LTransitionManager.html" target="_blank">http://lufylegend.com/demo/examples/LTransitionManager.html</a></p>
</div>
<!-- LTransitionManager_startTransition end -->

<!-- LRectangle_LRectangle start -->
<div id="LRectangle_LRectangle" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>LRectangle(x,y,width,height)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>创建一个新 Rectangle 对象，其左上角由 x 和 y 参数指定，并具有指定的 width 和 height 参数。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x：矩形左上角的 x 坐标</p>
<p>y：矩形左上角的 y 坐标</p>
<p>width：矩形的宽度（以像素为单位）</p>
<p>height：矩形的高度（以像素为单位）</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>Rectangle 对象是按其位置（由它左上角的点 (x, y) 确定）以及宽度和高度定义的区域。</p>
</div>
<!-- LRectangle_LRectangle end -->


<!-- LRectangle_clone start -->
<div id="LRectangle_clone" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>clone()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>返回一个新的 Rectangle 对象，其 x、y、width 和 height 属性的值与原始 Rectangle 对象的对应值相同。</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>新的 Rectangle 对象，其 x、y、width 和 height 属性的值与原始 Rectangle 对象的对应值相同</p>
</div>
<!-- LRectangle_clone end -->


<!-- LRectangle_contains start -->
<div id="LRectangle_contains" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>contains(x,y)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>确定由此 Rectangle 对象定义的矩形区域内是否包含指定的点。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x：点的 x 坐标（水平位置）</p>
<p>y：点的 y 坐标（垂直位置）</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>如果 Rectangle 对象包含指定的点，则值为 true；否则为 false。</p>
</div>
<!-- LRectangle_contains end -->


<!-- LRectangle_containsRect start -->
<div id="LRectangle_containsRect" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>containsRect(rect)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>确定此 Rectangle 对象内是否包含由 rect 参数指定的 Rectangle 对象。如果一个 Rectangle 对象完全在另一个 Rectangle 的边界内，我们说第二个 Rectangle 包含第一个 Rectangle。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>rect：所检查的 Rectangle 对象。</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>如果此 Rectangle 对象包含您指定的 Rectangle 对象，则返回 true 值，否则返回 false。</p>
</div>
<!-- LRectangle_containsRect end -->


<!-- LRectangle_equals start -->
<div id="LRectangle_equals" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>equals(toCompare)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>确定在 toCompare 参数中指定的对象是否等于此 Rectangle 对象。此方法将某个对象的 x、y、width 和 height 属性与此 Rectangle 对象所对应的相同属性进行比较。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>toCompare：要与此 Rectangle 对象进行比较的矩形。</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>如果对象具有与此 Rectangle 对象完全相同的 x、y、width 和 height 属性值，则返回 true 值，否则返回 false。</p>
</div>
<!-- LRectangle_equals end -->


<!-- LRectangle_inflate start -->
<div id="LRectangle_inflate" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>inflate(dx, dy)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>按指定量增加 Rectangle 对象的大小（以像素为单位）。保持 Rectangle 对象的中心点不变，使用 dx 值横向增加它的大小，使用 dy 值纵向增加它的大小。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>dx：Rectangle 对象横向增加的值。下列等式用于计算矩形的新宽度和位置：</p>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
x -= dx;
width += 2 * dx;
</pre>
</p>
<p>dy：Rectangle 纵向增加的值。下列等式用于计算矩形的新高度和位置：</p>
<p>
<pre  class='brush: javascript' style="background:#ffffff;">
y -= dy;
height += 2 * dy;
</pre>
</p>
</div>
<!-- LRectangle_inflate end -->


<!-- LRectangle_intersection start -->
<div id="LRectangle_intersection" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>intersection(toIntersect)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>如果在 toIntersect 参数中指定的 Rectangle 对象与此 Rectangle 对象相交，则返回交集区域作为 Rectangle 对象。如果矩形不相交，则此方法返回一个空的 Rectangle 对象，其属性设置为 0。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>toIntersect：要对照比较以查看其是否与此 Rectangle 对象相交的 Rectangle 对象。</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p> 等于交集区域的 Rectangle 对象。如果该矩形不相交，则此方法返回一个空的 Rectangle 对象；即，其 x、y、width 和 height 属性均设置为 0 的矩形。</p>
</div>
<!-- LRectangle_intersection end -->


<!-- LRectangle_isEmpty start -->
<div id="LRectangle_isEmpty" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>isEmpty()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>确定此 Rectangle 对象是否为空。</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p> 如果 Rectangle 对象的宽度或高度小于等于 0，则返回 true 值，否则返回 false。</p>
</div>
<!-- LRectangle_isEmpty end -->


<!-- LRectangle_offset start -->
<div id="LRectangle_offset" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>offset(dx, dy)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>按指定量调整 Rectangle 对象的位置（由其左上角确定）。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>dx：将 Rectangle 对象的 x 值移动此数量。</p>
<p>dy：将 Rectangle 对象的 y 值移动此数量。</p>
</div>
<!-- LRectangle_offset end -->


<!-- LRectangle_setEmpty start -->
<div id="LRectangle_setEmpty" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>setEmpty()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将 Rectangle 对象的所有属性设置为 0。如果 Rectangle 对象的宽度或高度小于或等于 0，则该对象为空。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>此方法将 x、y、width 和 height 属性设置为 0。</p>
</div>
<!-- LRectangle_setEmpty end -->


<!-- LRectangle_setTo start -->
<div id="LRectangle_setTo" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>setTo(x, y, width, height)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>按指定量调整 Rectangle 对象的位置和大小。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x：将 Rectangle 对象的 x 值移动此数量。</p>
<p>y：将 Rectangle 对象的 y 值移动此数量。</p>
<p>width：将 Rectangle 对象的 width 值设置为此数量。</p>
<p>height：将 Rectangle 对象的 width 值设置为此数量。</p>
</div>
<!-- LRectangle_setTo end -->


<!-- LRectangle_toString start -->
<div id="LRectangle_toString" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>toString()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>生成并返回一个字符串，该字符串列出 Rectangle 对象的水平位置和垂直位置以及高度和宽度。</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>一个字符串，它列出了 Rectangle 对象的下列各个属性的值：x、y、width 和 height。</p>
</div>
<!-- LRectangle_toString end -->


<!-- LRectangle_union start -->
<div id="LRectangle_union" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRectangle</a></div>
<h2>union(toUnion)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>通过填充两个矩形之间的水平和垂直空间，将这两个矩形组合在一起以创建一个新的 Rectangle 对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>toUnion：要添加到此 Rectangle 对象的 Rectangle 对象。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>union() 方法忽略高度或宽度值为 0 的矩形，如：var rect2:Rectangle = new Rectangle(300,300,50,0);</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>充当两个矩形的联合的新 Rectangle 对象。</p>
</div>
<!-- LRectangle_union end -->


<!-- LQuadTree_LQuadTree start -->
<div id="LQuadTree_LQuadTree" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LQuadTree</a></div>
<h2>LQuadTree(rect)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>四叉树类，可拥有高速检测矩形碰撞。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>rect：矩形区域，是一个LRectangle对象。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>下面是一个使用四叉树检测碰撞的例子。</p>
<p>
<pre  class='brush:html' style="background:#ffffff;">
&lt;!DOCTYPE html>
&lt;html>
&lt;head>
&lt;meta charset="UTF-8">
&lt;title>碰撞检测 四叉树方法&lt;/title>
&lt;/head>
&lt;body>
&lt;div id="mylegend">loading……&lt;/div>
&lt;script type="text/javascript" src="../lufylegend-1.6.0.min.js">&lt;/script>
&lt;script type="text/javascript">
init(30,"mylegend",800,450,main,LEvent.INIT);
var back,query,list;
function main(){
	LGlobal.setDebug(true);
	back = new LSprite();
	back.graphics.drawRect(1,"#000000",[0,0,800,450],true,"#cccccc");
	query = new LQuadTree(new LRectangle(0,0,800,450));
	query.createChildren(3);
	addChild(back);
	list = [];
	var child;
	for(var i=0;i&lt; 400;i++){
		child = new LSprite();
		child.graphics.drawRect(1,"#000000",[0,0,20,20]);
		child.x = Math.random()*750;
		child.y = Math.random()*400;
		child.sx = 10 - Math.random()*20;
		child.sy = 10 - Math.random()*20;
		back.addChild(child);
		list.push(child);
		query.add(child,child.x,child.y);
	}
	back.addEventListener(LEvent.ENTER_FRAME, onframe);
}

function onframe(){
	var child,child2;
	for (var i = 0; i &lt; list.length; i++) {
		child = list[i];
		child.x += child.sx;
		child.y += child.sy;
		if(child.x &lt; 0 || child.x > LGlobal.width)child.sx *= -1;
		if(child.y &lt; 0 || child.y > LGlobal.height)child.sy *= -1;
		query.remove(child);
		query.add(child,child.x,child.y);
	}
	var arr = [];
	for(var key=0; key &lt; back.childList.length;key++){
		child = back.childList[key];
		
		child.graphics.clear();
		child.graphics.drawRect(1,"#000000",[0,0,20,20]);
		var queryArr = query.getDataInRect(new LRectangle(child.x - 20,child.y - 20,60,60));
		for (var i = 0; i &lt; queryArr.length; i++) {
			child2 = queryArr[i];
			if(child.objectindex != child2.objectindex && LGlobal.hitTest(child,child2)){
				arr.push(key);
				break;
			}
		}
	}
	for (key in arr){
		child = back.childList[arr[key]];
		child.graphics.clear();
		child.graphics.drawRect(1,"#ff0000",[0,0,20,20]);
	}
}
&lt;/script>
&lt;/body>
&lt;/html>
</pre>
</p>
</div>
<!-- LQuadTree_LQuadTree end -->


<!-- LQuadTree_createChildren start -->
<div id="LQuadTree_createChildren" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LQuadTree</a></div>
<h2>createChildren(deep)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>矩形分割</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>deep：将检测的矩形区域分割的深度(次数)</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>使用四叉树，首先要将检测的矩形进行分割，每分割一次，表示将每个矩形分割成四个小矩形。</p>
</div>
<!-- LQuadTree_createChildren end -->


<!-- LQuadTree_hasChildren start -->
<div id="LQuadTree_hasChildren" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LQuadTree</a></div>
<h2>hasChildren()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>检测矩形区域内是否继续被分割</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>如果被检测的矩形区域有被继续分割，则返回true，否则返回false。</p>
</div>
<!-- LQuadTree_hasChildren end -->


<!-- LQuadTree_clear start -->
<div id="LQuadTree_clear" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LQuadTree</a></div>
<h2>clear()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将检测矩形区域清空</p>
</div>
<!-- LQuadTree_clear end -->


<!-- LQuadTree_add start -->
<div id="LQuadTree_add" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LQuadTree</a></div>
<h2>add(value, x, y)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将检测对象加入到LQuadTree对象内</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：检测对象</p>
<p>x：检测对象的x坐标</p>
<p>y：检测对象的y坐标</p>
</div>
<!-- LQuadTree_add end -->


<!-- LQuadTree_remove start -->
<div id="LQuadTree_remove" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LQuadTree</a></div>
<h2>remove(value, x, y)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将检测对象从LQuadTree对象内移除</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：检测对象</p>
<p>x：检测对象的x坐标</p>
<p>y：检测对象的y坐标</p>
</div>
<!-- LQuadTree_remove end -->


<!-- LQuadTree_isIn start -->
<div id="LQuadTree_isIn" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LQuadTree</a></div>
<h2>isIn(x, y)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>检测坐标是否在LQuadTree对象内</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>x：检测的x坐标</p>
<p>y：检测的y坐标</p>
</div>
<!-- LQuadTree_isIn end -->


<!-- LQuadTree_getDataInRect start -->
<div id="LQuadTree_getDataInRect" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LQuadTree</a></div>
<h2>getDataInRect(rect)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>返回指定矩形区域内的所有对象</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>rect：指定矩形区域，一个LRectangle对象</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>装有指定矩形区域内的所有对象的数组。</p>
</div>
<!-- LQuadTree_getDataInRect end -->


<!-- LFlash_SpriteSheetConvert start -->
<div id="LFlash_SpriteSheetConvert" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LFlash</a></div>
<h2>SpriteSheetConvert(jsonArray)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将Flash Professional工具导出的JSON Array格式的数据转换为可被LAnimation直接使用的数组</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>jsonArray：通过Flash Professional工具导出的SpriteSheet对象的json数组，导出时需要以JSON Array格式导出。</p>
<div class="hr"></div>
<h3>■返回值：</h3>
<p>返回一个可被LAnimation直接使用的数组。</p>
<div class="hr"></div>
<h3>■举例：</h3>
<p>
<pre  class='brush: html' style="background:#ffffff;">
var loader;  
var jData = {"frames": [

{
	"filename": "fairy_base0000",
	"frame": {"x":0,"y":0,"w":169,"h":182},
	"rotated": false,
	"trimmed": true,
	"spriteSourceSize": {"x":245,"y":433,"w":527,"h":616},
	"sourceSize": {"w":527,"h":616}
}
,{
	"filename": "fairy_base0001",
	"frame": {"x":169,"y":0,"w":164,"h":182},
	"rotated": false,
	"trimmed": true,
	"spriteSourceSize": {"x":247,"y":433,"w":527,"h":616},
	"sourceSize": {"w":527,"h":616}
}
......
],
"meta": {
	"app": "Adobe Flash Professional",
	"version": "13.1.0.226",
	"image": "Pet2.png",
	"format": "RGBA8888",
	"size": {"w":4096,"h":4096},
	"scale": "1"
}
};
init(50,"legend",527,616,main);
function main(){  
    loader = new LLoader();  
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
    loader.load("Pet2.png","bitmapData");
}  
function loadBitmapdata(event){  
    var bitmapdata = new LBitmapData(loader.content,0,0,jData.frames[0].frame.w,jData.frames[0].frame.h);  
    var list = LFlash.SpriteSheetConvert(jData.frames);
	var ppbing = new LAnimationTimeline(bitmapdata,[list]);
	addChild(ppbing);
} 
</pre>
</p>
</div>
<!-- LFlash_SpriteSheetConvert end -->


<!-- LMath_trim start -->
<div id="LMath_trim" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMath</a></div>
<h2>LMath.trim(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>删除字符串左右空格</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：字符串</p>
</div>
<!-- LMath_trim end -->


<!-- LMath_leftTrim start -->
<div id="LMath_leftTrim" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMath</a></div>
<h2>LMath.leftTrim(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>删除字符串左边空格</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：字符串</p>
</div>
<!-- LMath_leftTrim end -->


<!-- LMath_rightTrim start -->
<div id="LMath_rightTrim" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMath</a></div>
<h2>LMath.rightTrim(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>删除字符串右边空格</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：字符串</p>
</div>
<!-- LMath_rightTrim end -->


<!-- LMath_numberFormat start -->
<div id="LMath_numberFormat" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMath</a></div>
<h2>LMath.numberFormat(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>数字格式化</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：数字</p>
</div>
<!-- LMath_numberFormat end -->


<!-- LMath_isString start -->
<div id="LMath_isString" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMath</a></div>
<h2>LMath.isString(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>是否字符串</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：判断对象</p>
</div>
<!-- LMath_isString end -->


<!-- LMath_isNumber start -->
<div id="LMath_isNumber" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMath</a></div>
<h2>LMath.isNumber(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>是否数字</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：判断对象</p>
</div>
<!-- LMath_isNumber end -->


<!-- LMath_isInt start -->
<div id="LMath_isInt" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMath</a></div>
<h2>LMath.isInt(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>是否整数</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：判断对象</p>
</div>
<!-- LMath_isInt end -->


<!-- LAjax_get start -->
<div id="LAjax_get" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAjax</a></div>
<h2>LAjax.get(url, data, oncomplete,onerror)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>使用 HTTP GET 请求从服务器加载数据。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>url：必需。规定将请求发送的哪个 URL。</p>
<p>data：可选。规定连同请求发送到服务器的数据。</p>
<p>oncomplete：可选。规定当请求成功时运行的函数。</p>
<p>onerror：可选。规定当请求失败时运行的函数。</p>
</div>
<!-- LAjax_get end -->


<!-- LAjax_post start -->
<div id="LAjax_post" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LAjax</a></div>
<h2>LAjax.post(url, data, oncomplete,onerror)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>使用 HTTP POST 请求从服务器加载数据。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>url：必需。规定将请求发送的哪个 URL。</p>
<p>data：可选。规定连同请求发送到服务器的数据。</p>
<p>oncomplete：可选。规定当请求成功时运行的函数。</p>
<p>onerror：可选。规定当请求失败时运行的函数。</p>
</div>
<!-- LAjax_post end -->


<!-- LStageWebView_LStageWebView start -->
<div id="LStageWebView_LStageWebView" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LStageWebView</a></div>
<h2>LStageWebView()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>在舞台视口中显示 HTML 内容。</p>
</div>
<!-- LStageWebView_LStageWebView end -->

<!-- LStageWebView_loadURL start -->
<div id="LStageWebView_loadURL" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LStageWebView</a></div>
<h2>loadURL(url)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>在指定的 URL 加载页面。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>url：必需。URL 可以使用下列 URI 方案：http:、https:。</p>
<div class="hr"></div>
<h3>■举例：</h3>
<p>
<pre  class='brush: html' style="background:#ffffff;">var view = new LStageWebView();
view.setViewPort(new LRectangle(100,10,300,200));
view.loadURL("http://www.baidu.com");
view.show();
</pre>
</p>
</div>
<!-- LStageWebView_loadURL end -->

<!-- LStageWebView_setViewPort start -->
<div id="LStageWebView_setViewPort" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LStageWebView</a></div>
<h2>setViewPort(rect)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设置舞台上显示LStageWebView 对象的区域。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>rect：一个LRectangle对象。</p>
<div class="hr"></div>
<h3>■举例：</h3>
<p>
<pre  class='brush: html' style="background:#ffffff;">var view = new LStageWebView();
view.setViewPort(new LRectangle(100,10,300,200));
view.loadURL("http://www.baidu.com");
view.show();
</pre>
</p>
</div>
<!-- LStageWebView_setViewPort end -->

<!-- LStageWebView_show start -->
<div id="LStageWebView_show" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LStageWebView</a></div>
<h2>show()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>在舞台上显示LStageWebView 对象。</p>
<div class="hr"></div>
<h3>■举例：</h3>
<p>
<pre  class='brush: html' style="background:#ffffff;">var view = new LStageWebView();
view.setViewPort(new LRectangle(100,10,300,200));
view.loadURL("http://www.baidu.com");
view.show();
</pre>
</p>
</div>
<!-- LStageWebView_show end -->

<!-- LStageWebView_die start -->
<div id="LStageWebView_die" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LStageWebView</a></div>
<h2>die()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>将LStageWebView 对象从舞台上移除。</p>
<div class="hr"></div>
<h3>■举例：</h3>
<p>
<pre  class='brush: html' style="background:#ffffff;">var view = new LStageWebView();
view.setViewPort(new LRectangle(100,10,300,200));
view.loadURL("http://www.baidu.com");
view.show();
view.die();
</pre>
</p>
</div>
<!-- LStageWebView_die end -->

<!-- FPS_FPS start -->
<div id="FPS_FPS" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>FPS</a></div>
<h2>FPS()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>显示游戏帧率。</p>
<div class="hr"></div>
<h3>■举例：</h3>
<p>
<pre  class='brush: html' style="background:#ffffff;">var fps = new FPS();
addChild(fps);
</pre>
</p>
</div>
<!-- FPS_FPS end -->


<!-- LLibrary_LLibrary start -->
<div id="LLibrary_LLibrary" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>引擎附加类库</a></div>
<h2>使用方法</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>为了缩减引擎的体积，lufylegend.js引擎从1.8.0开始，提供了lufylegend-1.8.0（完整版）和lufylegend-1.8.0.simple版本，lufylegend-1.8.0.simple版本将下面几个类与引擎分离：</p>
<p>LBox2d，LQuadTree，LTransitionManager，LoadingSample1，LoadingSample2，LoadingSample3，LoadingSample4，LoadingSample5。</p>
<p>如果使用lufylegend.js引擎完整版的话，这些类是包含在引擎之内的，如果使用了lufylegend-1.8.0.simple版本，在用到上述几个类的时候，应该先引进，然后在进行使用。</p>
<div class="hr"></div>
<h3>■举例：</h3>
<pre  class='brush: html' style="background:#ffffff;">&lt;!DOCTYPE html>
&lt;head>
	&lt;meta charset="utf-8" />
	&lt;title>LTransitionManager&lt;/title>
	&lt;script type="text/javascript" src="http://lufylegend.com/js/lufylegend-1.8.0.simple.js">&lt;/script>
	&lt;script type="text/javascript" src="http://lufylegend.com/js/lib/lufylegend.LTransitionManager-0.1.0.min.js">&lt;/script>
	&lt;script type="text/javascript" src="http://lufylegend.com/js/lib/lufylegend.LoadingSample1-0.1.0.min.js">&lt;/script>
	&lt;script type="text/javascript" src="http://lufylegend.com/js/lib/lufylegend.ui-0.2.0.min.js">&lt;/script>
&lt;/head>
</pre>
</div>
<!-- LLibrary_LLibrary end -->


<!-- LUI_LUI start -->
<div id="LUI_LUI" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>引擎专用UI组件</a></div>
<h2>UI简介和使用方法</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>lufylegend.ui组件是lufylegend.js引擎的专用UI组件，使用时需要引进lufylegend.ui-x.x.x.js文件。</p>
<p>lufylegend.ui组件专门为懒人准备，包含按钮，单选框，多选框，组合框，滚动条等UI。</p>
<div class="hr"></div>
<h3>■举例：</h3>
<p>
<pre  class='brush: html' style="background:#ffffff;">&lt;!DOCTYPE html>
&lt;html lang="en">
	&lt;head>
	&lt;meta charset="utf-8" />
	&lt;title>UI&lt;/title>
	&lt;script type="text/javascript" src="../lufylegend-1.7.1.min.js">&lt;/script>
	&lt;script type="text/javascript" src="../lufylegend.ui-0.1.0.js">&lt;/script>
	&lt;/head>
	&lt;body>
			&lt;div id="legend">&lt;/div>
&lt;script>
init(50,"legend",800,450,main);
var layer;
function main(){
	LGlobal.setDebug(true);
	layer = new LSprite();
	addChild(layer);
	addButton();
	addRadio();
	addCheckBox();
	addComboBox();
	
	var showObject = new LSprite();
	showObject.graphics.drawRect(2,"#ff0000",[0,0,500,500],true,"#ff0000");
	var t = new LTextField();
	//t.y = 300;
	t.color = "#000000";
	t.text = "あいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてと";
	t.width = 300;
	t.stroke = true;
	t.size = 30;
	t.setWordWrap(true,35);
	showObject.addChild(t);
	var sc = new LScrollbar(showObject,200,200);
	sc.x = 450;
	sc.y = 20;
	layer.addChild(sc);
}
function addComboBox(){
	var com = new LComboBox(20);
	com.x = 50;
	com.y= 210;
	com.setChild({label:"测试一",value:"aaa"});
	com.setChild({label:"测试二",value:"bbb"});
	com.setChild({label:"测试三",value:"ccc"});
	com.setChild({label:"测试四",value:"ddd"});
	layer.addChild(com);
}
function addCheckBox(){
	var check1 = new LCheckBox();
	check1.x = 50;
	check1.y= 160;
	layer.addChild(check1);
	var check2 = new LCheckBox();
	check2.x = 100;
	check2.y= 160;
	layer.addChild(check2);
}
function addRadio(){
	var radio = new LRadio();
	radio.x = 50;
	radio.y = 130;
	radio.setChildRadio(1,0,0);
	radio.setChildRadio(2,50,0);
	radio.setChildRadio(3,100,0);
	layer.addChild(radio);
}
function addButton(){
	var button01 = new LButtonSample1("测试按钮1");
	button01.x = 10;
	button01.y = 10;
	layer.addChild(button01);
	
	var button02 = new LButtonSample1("测试按钮2");
	button02.backgroundCorl = "#008800";
	button02.x = 150;
	button02.y = 10;
	layer.addChild(button02);
	
	var button03 = new LButtonSample1("测试按钮3");
	button03.backgroundCorl = "red";
	button03.x = 290;
	button03.y = 10;
	layer.addChild(button03);
	
	var button04 = new LButtonSample2("测试按钮4");
	button04.backgroundCorl = "blue";
	button04.x = 10;
	button04.y = 70;
	layer.addChild(button04);
	
	var button05 = new LButtonSample2("测试按钮5",12);
	button05.backgroundCorl = "purple";
	button05.x = 150;
	button05.y = 70;
	layer.addChild(button05);
	
	var button06 = new LButtonSample2("测试按钮6",20);
	button06.backgroundCorl = "orange";
	button06.x = 260;
	button06.y = 70;
	layer.addChild(button06);
}
&lt;/script>
	&lt;/body>
&lt;/html>
</pre>
</p>
</div>
<!-- LUI_LUI end -->

<!-- LMvc_LMvc start -->
<div id="LMvc_LMvc" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>引擎专用MVC框架</a></div>
<h2>LMVC简介和使用方法</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>MVC框架是什么，这里就不做解释了，请查阅一下其他的详细资料。</p>
<p>此框架适用于比较大型的项目开发，可以使得代码结构整洁，便于代码的管理和维护。</p>
<p>※如果是普通的小游戏开发，就不必使用MVC结构了。</p>
<div class="hr"></div>
<h3> 使用方法：</h3>
<p>首先配置引擎中各路径LMvc.JS_PATH，LMvc.IMG_PATH，LMvc.MVC_PATH，LMvc.API_PATH，LMvc.SOUND_PATH。</p>
<p>如果需要提前读取一些图片的话，需要将读取完的数据赋值给LMvc.datalist，在后面使用LMvc框架读取图片的时候，会自动对LMvc.datalist进行监测，重复的图片会不再次读取。</p>
<p>最后，调用LMvc.init();就可以进入IndexController了。</p>
<div class="hr"></div>
<p>每一个***Controller,***Model,***View是一个组，使用之前必须先读取，使用<a href="javascript:void(0)" onclick="closeMenu('LMvc_Controller')">控制器</a>的loadMvc函数，可以读取一组MVC。</p>
<p>一组MVC中可以互调，在控制器Controller中，可以使用 控制器.model 来调用它的模型，使用 控制器.view 来调用它的视图。在模型Model中,可以使用 模型.controller 来调用它的控制器，使用 模型.view 来调用它的视图。在视图View中,可以使用 模型.controller 来调用它的控制器，使用 模型.model 来调用它的模型。</p>
<div class="hr"></div>
<h3>■配置举例：</h3>
<pre  class='brush: html' style="background:#ffffff;">&lt;!DOCTYPE html>
&lt;html>
    &lt;head>
        &lt;title>三国&lt;/title>
        &lt;meta charset="UTF-8">
        &lt;meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
        &lt;script src="./js/lufylegend-1.8.3.js" type="text/javascript">&lt;/script>
        &lt;script src="./js/lib/lufylegend.ui-0.4.0.min.js" type="text/javascript">&lt;/script>
        &lt;script src="./lufylegend.mvc.js" type="text/javascript">&lt;/script>
        &lt;script src="./core/MyController.js" type="text/javascript">&lt;/script>
        &lt;script src="./core/MyModel.js" type="text/javascript">&lt;/script>
    &lt;/head>
    &lt;body style="margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;">
        &lt;div id="mvclegend">loading&lt;/div>
        &lt;script>
        //引擎中各路径的配置
		LMvc.JS_PATH = "./";
		LMvc.IMG_PATH = "./images/";
		LMvc.MVC_PATH = "./";
		LMvc.API_PATH = "./";
		LMvc.SOUND_PATH = "./sound/";
		
        init(40,"mvclegend",480,800,main);
		var loadData = [
				{name:"logo_bg_1",path:LMvc.IMG_PATH+"logo/logo_bg_1.jpg"},
				{name:"logo_bg_2",path:LMvc.IMG_PATH+"logo/logo_bg_2.png"},
				{name:"logo_ryofu",path:LMvc.IMG_PATH+"logo/logo_ryofu.png"},
				{name:"logo_title",path:LMvc.IMG_PATH+"logo/logo.png"}
		];
		function main(){
			if(LGlobal.canTouch){
				LGlobal.stageScale = LStageScaleMode.EXACT_FIT;
				LSystem.screen(LStage.FULL_SCREEN);
			}
			loadingLayer = new LoadingSample3();
			addChild(loadingLayer);	
			LLoadManage.load(
				loadData,
				function(progress){
					loadingLayer.setProgress(progress);
				},
				function(result){
					LMvc.datalist = result;
					removeChild(loadingLayer);
					loadingLayer = null;
					
					LMvc.init();
				}
			);
		}
        &lt;/script>
    &lt;/body>
&lt;/html>

</pre>
<div class="hr"></div>
<h3>■下面是一个MVC框架写的游戏的测试连接：</h3>
<p><a href="http://lufylegend.com/demo/mvcSample/" target="_blank">http://lufylegend.com/demo/mvcSample/</a></p>
</div>
<!-- LMvc_LMvc end -->

<!-- LMvc_Controller start -->
<div id="LMvc_Controller" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>引擎专用MVC框架</a></div>
<h2>控制器</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>简而言之，一个控制器就是一个类文件。控制器必须放到Controllers文件夹内，控制器的名字以Controller结尾。</p>
<p>在控制器中，可以使用 this.model 来调用它的模型，使用 this.view 来调用它的视图。</p>
<div class="hr"></div>
<h3> 控制器中的函数：</h3>
<p>construct() ： 控制器初始化结束后会直接调用此函数，如果有想要在控制器初期化结束后运行的代码，可以写在construct函数内，控制器的construct函数，在模型的construct函数运行之后运行。</p>
<p>loadMvc(name,callback,lastClass) ： 读取一组MVC，name是控制器的名称中去除Controller的部分；callback是回调函数，当MVC的三个文件读取完之后，会自动调用此函数；lastClass需要设定为当前对象this。</p>
<div class="hr"></div>
<h3> load：</h3>
<p>this.load.model(names,callback) ： 读取一个或者多个模型。</p>
<p>this.load.view(names,callback) ： 读取一个或者多个视图。</p>
<p>this.load.library(names,callback) ： 读取一个或者多个外部类库。</p>
<p>this.load.helper(names,callback) ： 读取一个或者多个辅助函数文件。</p>
<p>this.load.image(loadData,callback) ： 读取多张图片。</p>
</div>
<!-- LMvc_Controller end -->

<!-- LMvc_Model start -->
<div id="LMvc_Model" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>引擎专用MVC框架</a></div>
<h2>模型</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>模型是专门用来和数据打交道的，数据的存储等工作需要写到模型内。模型必须放到Models文件夹内，模型的名字以Model结尾。</p>
<p>在模型中，可以使用 this.controller 来调用它的控制器，使用 this.view 来调用它的视图。</p>
</div>
<!-- LMvc_Model end -->

<!-- LMvc_View start -->
<div id="LMvc_View" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>引擎专用MVC框架</a></div>
<h2>视图</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>视图是一个LSprite的子对象。视图必须放到Views文件夹内，视图的名字以View结尾。</p>
<p>在模型中，可以使用 this.controller 来调用它的控制器，使用 this.model 来调用它的模型。</p>
</div>
<!-- LMvc_View end -->

<!-- LMvc_Library start -->
<div id="LMvc_Library" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>引擎专用MVC框架</a></div>
<h2>类库</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>在控制器中可以通过this.load.library来读取一个类库。类库必须放到Libraris文件夹内，类库的名字与控制器，模型和视图的名字不同，它的名字就是类库的名字。</p>
</div>
<!-- LMvc_Library end -->

<!-- LMvc_Helper start -->
<div id="LMvc_Helper" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>引擎专用MVC框架</a></div>
<h2>辅助函数</h2>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>在控制器中可以通过this.load.helper来读取一个辅助函数文件。辅助函数文件必须放到Helpers文件夹内。</p>
</div>
<!-- LMvc_Helper end -->

<!-- LButtonSample1_LButtonSample1 start -->
<div id="LButtonSample1_LButtonSample1" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LButtonSample1</a></div>
<h2>LButtonSample1(name,size,font,color)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>新建一个矩形按钮。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>name：按钮文字。</p>
<p>size：按钮文字的大小，也决定了按钮的大小。</p>
<p>font：按钮文字的格式。</p>
<p>color：按钮文字的颜色。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>LButtonSample1继承自LButton对象。</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>backgroundCorl:按钮颜色</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var button01 = new LButtonSample1("测试按钮1");
	button01.x = 10;
	button01.y = 10;
	layer.addChild(button01);
	
	var button02 = new LButtonSample1("测试按钮2");
	button02.backgroundCorl = "#008800";
	button02.x = 150;
	button02.y = 10;
	layer.addChild(button02);
	
	var button03 = new LButtonSample1("测试按钮3");
	button03.backgroundCorl = "red";
	button03.x = 290;
	button03.y = 10;
	layer.addChild(button03);
</pre>
</p>
</div>
<!-- LButtonSample1_LButtonSample1 end -->


<!-- LButtonSample2_LButtonSample2 start -->
<div id="LButtonSample2_LButtonSample2" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LButtonSample2</a></div>
<h2>LButtonSample2(name,size,font,color)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>新建一个圆角矩形按钮。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>name：按钮文字。</p>
<p>size：按钮文字的大小，也决定了按钮的大小。</p>
<p>font：按钮文字的格式。</p>
<p>color：按钮文字的颜色。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>LButtonSample2继承自LButtonSample1对象。</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>backgroundCorl:按钮颜色</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var button04 = new LButtonSample2("测试按钮4");
	button04.backgroundCorl = "blue";
	button04.x = 10;
	button04.y = 70;
	layer.addChild(button04);
	
	var button05 = new LButtonSample2("测试按钮5",12);
	button05.backgroundCorl = "purple";
	button05.x = 150;
	button05.y = 70;
	layer.addChild(button05);
	
	var button06 = new LButtonSample2("测试按钮6",20);
	button06.backgroundCorl = "orange";
	button06.x = 260;
	button06.y = 70;
	layer.addChild(button06);
</pre>
</p>
</div>
<!-- LButtonSample2_LButtonSample2 end -->


<!-- LRadio_LRadio start -->
<div id="LRadio_LRadio" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRadio</a></div>
<h2>LRadio()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>单选框。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var radio = new LRadio();
	radio.x = 50;
	radio.y = 130;
	radio.setChildRadio(1,0,0);
	radio.setChildRadio(2,50,0);
	radio.setChildRadio(3,100,0);
	layer.addChild(radio);
</pre>
</p>
</div>
<!-- LRadio_LRadio end -->


<!-- LRadio_setChildRadio start -->
<div id="LRadio_setChildRadio" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRadio</a></div>
<h2>setChildRadio(value,x,y,layer,layerSelect)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>为单选框添加一个元素。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：所添加元素的值。</p>
<p>x：所添加元素的相对位置x坐标。</p>
<p>y：所添加元素的相对位置y坐标。</p>
<p>layer：所添加元素的未选中状态，是一个LDisplayObject对象或它的子对象，未设定则为默认。</p>
<p>layerSelect：所添加元素的选中状态，是一个LDisplayObject对象或它的子对象，未设定则为默认。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var radio = new LRadio();
	radio.x = 50;
	radio.y = 130;
	radio.setChildRadio(1,0,0);
	radio.setChildRadio(2,50,0);
	radio.setChildRadio(3,100,0);
	layer.addChild(radio);
</pre>
</p>
</div>
<!-- LRadio_setChildRadio end -->


<!-- LRadio_push start -->
<div id="LRadio_push" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRadio</a></div>
<h2>push(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>为单选框添加一个元素。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：一个LRadioChild对象。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var radio = new LRadio();
	radio.x = 50;
	radio.y = 130;
	var child;
	child = new LRadioChild(1);
	child.x = 0;
	child.y = 0;
	radio.push(child);
	child = new LRadioChild(2);
	child.x = 50;
	child.y = 0;
	radio.push(child);
	child = new LRadioChild(3);
	child.x = 100;
	child.y = 0;
	radio.push(child);
	layer.addChild(radio);
</pre>
</p>
</div>
<!-- LRadio_push end -->


<!-- LRadio_setValue start -->
<div id="LRadio_setValue" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRadio</a></div>
<h2>setValue(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设定单选框的值。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：设定的值。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var radio = new LRadio();
	radio.x = 50;
	radio.y = 130;
	radio.setChildRadio(1,0,0);
	radio.setChildRadio(2,50,0);
	radio.setChildRadio(3,100,0);
	layer.addChild(radio);
	radio.setValue(2);
</pre>
</p>
</div>
<!-- LRadio_setValue end -->


<!-- LRadioChild_LRadioChild start -->
<div id="LRadioChild_LRadioChild" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRadioChild</a></div>
<h2>LRadioChild(value,layer,layerSelect)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>单选框元素。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：元素的值。</p>
<p>layer：元素的未选中状态，是一个LDisplayObject对象或它的子对象，未设定则为默认。</p>
<p>layerSelect：元素的选中状态，是一个LDisplayObject对象或它的子对象，未设定则为默认。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var radio = new LRadio();
	radio.x = 50;
	radio.y = 130;
	var child;
	child = new LRadioChild(1);
	child.x = 0;
	child.y = 0;
	radio.push(child);
	child = new LRadioChild(2);
	child.x = 50;
	child.y = 0;
	radio.push(child);
	child = new LRadioChild(3);
	child.x = 100;
	child.y = 0;
	radio.push(child);
	layer.addChild(radio);
</pre>
</p>
</div>
<!-- LRadioChild_LRadioChild end -->


<!-- LCheckBox_LCheckBox start -->
<div id="LCheckBox_LCheckBox" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LCheckBox</a></div>
<h2>LCheckBox()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>多选框。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var check1 = new LCheckBox();
	check1.x = 50;
	check1.y= 160;
	layer.addChild(check1);
	var check2 = new LCheckBox();
	check2.x = 100;
	check2.y= 160;
	layer.addChild(check2);
</pre>
</p>
</div>
<!-- LCheckBox_LCheckBox end -->


<!-- LCheckBox_setChecked start -->
<div id="LCheckBox_setChecked" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LCheckBox</a></div>
<h2>setChecked(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设定多选框状态。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var check1 = new LCheckBox();
	check1.x = 50;
	check1.y= 160;
	check1.setChecked(true);
	layer.addChild(check1);
	var check2 = new LCheckBox();
	check2.x = 100;
	check2.y= 160;
	layer.addChild(check2);
</pre>
</p>
</div>
<!-- LCheckBox_setChecked end -->


<!-- LComboBox_LComboBox start -->
<div id="LComboBox_LComboBox" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LComboBox</a></div>
<h2>LComboBox(size,color,font,layer,layerUp,layerDown)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>组合框。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>size：组合框中文字大小。</p>
<p>color：文字颜色。</p>
<p>font：文字格式。</p>
<p>layer：组合框的样式，是一个LDisplayObject对象或它的子对象，未设定则为默认。</p>
<p>layerUp：组合框上选按钮样式，是一个LDisplayObject对象或它的子对象，未设定则为默认。</p>
<p>layerDown：组合框下选按钮样式，是一个LDisplayObject对象或它的子对象，未设定则为默认。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var com = new LComboBox(20);
	com.x = 50;
	com.y= 210;
	com.setChild({label:"测试一",value:"aaa"});
	com.setChild({label:"测试二",value:"bbb"});
	com.setChild({label:"测试三",value:"ccc"});
	com.setChild({label:"测试四",value:"ddd"});
	layer.addChild(com);
</pre>
</p>
</div>
<!-- LComboBox_LComboBox end -->


<!-- LComboBox_setChild start -->
<div id="LComboBox_setChild" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LComboBox</a></div>
<h2>setChild(child)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>组合框。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>child：Object对象{label:a,value:b}。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var com = new LComboBox(20);
	com.x = 50;
	com.y= 210;
	com.setChild({label:"测试一",value:"aaa"});
	com.setChild({label:"测试二",value:"bbb"});
	com.setChild({label:"测试三",value:"ccc"});
	com.setChild({label:"测试四",value:"ddd"});
	layer.addChild(com);
</pre>
</p>
</div>
<!-- LComboBox_setChild end -->


<!-- LScrollbar_LScrollbar start -->
<div id="LScrollbar_LScrollbar" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LScrollbar</a></div>
<h2>LScrollbar(showObject,maskW,maskH,scrollWidth,wVisible)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>带有滚动条的可视对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>showObject：需要加入滚动条的对象。</p>
<p>maskW：滚动条对象的可视大小的宽。</p>
<p>maskH：滚动条对象的可视大小的高。</p>
<p>scrollWidth：滚动条的宽。</p>
<p>wVisible：是否显示横向滚动条，未设定则为默认。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var showObject = new LSprite();
	showObject.graphics.drawRect(2,"#ff0000",[0,0,500,500],true,"#ff0000");
	var t = new LTextField();
	t.color = "#000000";
	t.text = "あいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてとあいうえおかきくけこさしすせそたちつてと";
	t.width = 300;
	t.stroke = true;
	t.size = 30;
	t.setWordWrap(true,35);
	showObject.addChild(t);
	var sc = new LScrollbar(showObject,200,200);
	sc.x = 450;
	sc.y = 20;
	layer.addChild(sc);
</pre>
</p>
</div>
<!-- LScrollbar_LScrollbar end -->


<!-- LScrollbar_getScrollY start -->
<div id="LScrollbar_getScrollY" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LScrollbar</a></div>
<h2>getScrollY()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>获取竖向滚动条位置。</p>
</div>
<!-- LScrollbar_getScrollY end -->


<!-- LScrollbar_setScrollY start -->
<div id="LScrollbar_setScrollY" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LScrollbar</a></div>
<h2>setScrollY(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设定竖向滚动条位置。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：竖向滚动条的位置。</p>
</div>
<!-- LScrollbar_setScrollY end -->


<!-- LScrollbar_getScrollX start -->
<div id="LScrollbar_getScrollX" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LScrollbar</a></div>
<h2>getScrollX()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>获取横向滚动条位置。</p>
</div>
<!-- LScrollbar_getScrollX end -->


<!-- LScrollbar_setScrollX start -->
<div id="LScrollbar_setScrollX" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LScrollbar</a></div>
<h2>setScrollX(value)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设定横向滚动条位置。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>value：横向滚动条的位置。</p>
</div>
<!-- LScrollbar_setScrollX end -->


<!-- LScrollbar_scrollToTop start -->
<div id="LScrollbar_scrollToTop" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LScrollbar</a></div>
<h2>scrollToTop()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设定竖向滚动条位置到最上端。</p>
</div>
<!-- LScrollbar_scrollToTop end -->


<!-- LScrollbar_scrollToBottom start -->
<div id="LScrollbar_scrollToBottom" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LScrollbar</a></div>
<h2>scrollToBottom()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设定竖向滚动条位置到最下端。</p>
</div>
<!-- LScrollbar_scrollToBottom end -->


<!-- LScrollbar_scrollToLeft start -->
<div id="LScrollbar_scrollToLeft" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LScrollbar</a></div>
<h2>scrollToLeft()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设定横向滚动条位置到最左端。</p>
</div>
<!-- LScrollbar_scrollToLeft end -->


<!-- LScrollbar_scrollToRight start -->
<div id="LScrollbar_scrollToRight" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LScrollbar</a></div>
<h2>scrollToRight()</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>设定横向滚动条位置到最右端。</p>
</div>
<!-- LScrollbar_scrollToRight end -->


<!-- LRange_LRange start -->
<div id="LRange_LRange" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LRange</a></div>
<h2>LRange(width)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>表示文档中的连续范围。相当于HTML中的Range对象。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>width：LRange对象的宽度。</p>
<div class="hr"></div>
<h3>■可用属性：</h3>
<p>value：LRange对象的值。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var r = new LRange(200);
	r.x = 10;
	r.y = 300;
	layer.addChild(r);
</pre>
</p>
</div>
<!-- LRange_LRange end -->

<!-- LWindow_LWindow start -->
<div id="LWindow_LWindow" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LWindow</a></div>
<h2>LWindow(width,height)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>表示一个可拖动的窗口。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>width：窗口的宽。</p>
<p>height：窗口的高。</p>
<div class="hr"></div>
<h3>■详细说明：</h3>
<p>LWindow对象包含一个layer层(LSprite对象),在向LWindow对象中添加子对象的时候，应该用LWindow对象.layer.addChild。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var myWindow = new LWindow(350,250);
	myWindow.x = 200;
	myWindow.y = 100;
	layer.addChild(myWindow);
	
	var title = new LTextField();
	title.text = "窗口UI测试";
	title.size = 20;
	title.x = 100;
	title.y = 10;
	myWindow.layer.addChild(title);
	
	var nameLabel = new LTextField();
	nameLabel.text = "用户名：";
	nameLabel.x = 80;
	nameLabel.y = 70;
	myWindow.layer.addChild(nameLabel);
	var name = new LTextField();
	name.x = 150;
	name.y = 70;
	name.setType(LTextFieldType.INPUT);
	myWindow.layer.addChild(name);
	var passLabel = new LTextField();
	passLabel.text = "密码：";
	passLabel.x = 80;
	passLabel.y = 110;
	myWindow.layer.addChild(passLabel);
	var pass = new LTextField();
	pass.x = 150;
	pass.y = 110;
	pass.displayAsPassword = true;
	pass.setType(LTextFieldType.INPUT);
	myWindow.layer.addChild(pass);

	var button01 = new LButtonSample1("登陆");
	button01.x = 100;
	button01.y = 150;
	myWindow.layer.addChild(button01);
	var button02 = new LButtonSample1("注册");
	button02.x = 200;
	button02.y = 150;
	myWindow.layer.addChild(button02);
</pre>
</p>
</div>
<!-- LWindow_LWindow end -->

<!-- LMenubar_LMenubar start -->
<div id="LMenubar_LMenubar" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMenubar</a></div>
<h2>LMenubar(list,property)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>定义包含一个或多个菜单的顶级水平菜单栏。单击顶级菜单项会打开一个弹出子菜单，该菜单是一个 Menu 控件实例。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>list　：　菜单列表，列表的具体格式请看下面的使用举例。</p>
<p>property　：　菜单属性，包含textSize（文字大小），spaceHorizontal（水平间隔），spaceVertical（垂直间隔），textColor（文字颜色），lineColor（分割线颜色），backgroundColor（菜单背景颜色），itemBackgroundColor（子菜单背景颜色），selectColor（菜单选中颜色）。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	var list = [
		{label:"File",list:[
			{label:"New",list:[
				{label:"File",click:function(){trace("File");}},
				{label:"Folder",click:function(){trace("Folder");}}
			]},
			{label:"New Open File",list:[
				{label:"File",click:function(){trace("File");}},
				{label:"Folder",click:function(){trace("Folder");}},
				{label:"Test",list:[
					{label:"File",click:function(){trace("File");}},
					{label:"Folder",click:function(){trace("Folder");}},
					{label:"Test",click:function(){trace("Test");}}
				]}
			]},
			{label:"Open File",click:function(){trace("Open File");}}
		]},
		{label:"Edit",list:[
			{label:"Test1",click:function(){trace("Test1");}},
			{label:"Test2",click:function(){trace("Test2");}}
		]},
		{label:"Project",list:[
			{label:"Test1",click:function(){trace("Test1");}},
			{label:"Test2",click:function(){trace("Test2");}}
		]},
		{label:"Window",list:[
			{label:"Test1",click:function(){trace("Test1");}},
			{label:"Test2",click:function(){trace("Test2");}}
		]},
		{label:"Help",list:[
			{label:"About",click:function(){trace("About");}},
			{label:"Test3",click:function(){trace("Test3");}}
		]}
	];
	var menu = new LMenubar(list,{textSize:20,textColor:"#FFFFFF",lineColor:"#000000",backgroundColor:"#333333"});
	addChild(menu);
</pre>
</p>
</div>
<!-- LMenubar_LMenubar end -->

<!-- LMessageBox_show start -->
<div id="LMessageBox_show" style="display:none;">
<div class="prev"><a class="chapter" href="javascript:void(0)" onclick="returnMenu()">返回>>LMessageBox</a></div>
<h2>LMessageBox.show(obj)</h2>
<div class="hr"></div>
<h3>■作用：</h3>
<p>弹出一个提示信息。</p>
<div class="hr"></div>
<h3>■参数：</h3>
<p>obj　：　弹出框的信息，包含message（内容）［必须］，title（标题）[可省略]，width（宽度）[可省略]，height（高度）[可省略]，size（文字大小）[可省略]，textHeight（文本行高）[可省略]，displayObject（此属性允许向弹出框中添加一个可视对象）[可省略]。</p>
<div class="hr"></div>
<h3>■使用举例：</h3>
<p>
<pre  class='brush:javascript' style="background:#ffffff;">
	LMessageBox.show({
		title:"关于",
		message:"测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试"
	});
</pre>
</p>
</div>
<!-- LMessageBox_show end -->













</div>
<!-- midcolumn end -->



</div>
</div>

<br>
</div>
<div style="width:100%;clear:both;margin:0;padding:0;background-color:transparent;position:relative;">
<div id="footer" style="width:600px;margin-left:auto;margin-right:auto;height:110px;">

<br>
<hr style="height:2px;color:#555555">


<div style="word-spacing:6px;font-size:80%;padding-right:12px;padding-top:19px;float:right;width:580px;text-align:right;">
<a href="http://lufylegend.com" target="_blank">主页</a> |
<a href="http://lufylegend.com/lufylegend" target="_blank">下载</a> |
<a href="http://lufylegend.com/forum" target="_blank">论坛</a>
</div>

</div>

</div>
<script>
/*! jQuery v1.7.1 jquery.com | jquery.org/license */
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a<f.L;a++)I(f[a]===e)H a;H-1}M=6(f,e){K a=[],b=M.1B,c=0,d,h;I(M.1R(f)){I(e!==1d)1S 3m("2a\'t 5r 5I 5F 5B 5C 15 5E 5p");H r(f)}I(v)1S 2U("2a\'t W 3l M 59 5m 5g 5x 5i");e=e||"";O(d={2N:11,19:[],2K:6(g){H e.1i(g)>-1},3d:6(g){e+=g}};c<f.L;)I(h=B(f,c,b,d)){a.U(h.3k);c+=h.1C[0].L||1}Y I(h=n.X.W(z[b],f.1a(c))){a.U(h[0]);c+=h[0].L}Y{h=f.3a(c);I(h==="[")b=M.2I;Y I(h==="]")b=M.1B;a.U(h);c++}a=15(a.1K(""),n.Q.W(e,w,""));a.1w={1m:f,19:d.2N?d.19:N};H a};M.3v="1.5.0";M.2I=1;M.1B=2;K C=/\\$(?:(\\d\\d?|[$&`\'])|{([$\\w]+)})/g,w=/[^5h]+|([\\s\\S])(?=[\\s\\S]*\\1)/g,A=/^(?:[?*+]|{\\d+(?:,\\d*)?})\\??/,v=11,u=[],n={X:15.Z.X,1A:15.Z.1A,1C:1r.Z.1C,Q:1r.Z.Q,1e:1r.Z.1e},x=n.X.W(/()??/,"")[1]===1d,D=6(){K f=/^/g;n.1A.W(f,"");H!f.12}(),y=6(){K f=/x/g;n.Q.W("x",f,"");H!f.12}(),E=15.Z.3n!==1d,z={};z[M.2I]=/^(?:\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S]))/;z[M.1B]=/^(?:\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S])|\\(\\?[:=!]|[?*+]\\?|{\\d+(?:,\\d*)?}\\??)/;M.1h=6(f,e,a,b){u.U({2q:r(f,"g"+(E?"y":"")),2b:e,3r:a||M.1B,2p:b||N})};M.2n=6(f,e){K a=f+"/"+(e||"");H M.2n[a]||(M.2n[a]=M(f,e))};M.3c=6(f){H r(f,"g")};M.5l=6(f){H f.Q(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")};M.5e=6(f,e,a,b){e=r(e,"g"+(b&&E?"y":""));e.12=a=a||0;f=e.X(f);H b?f&&f.P===a?f:N:f};M.3q=6(){M.1h=6(){1S 2U("2a\'t 55 1h 54 3q")}};M.1R=6(f){H 53.Z.1q.W(f)==="[2m 15]"};M.3p=6(f,e,a,b){O(K c=r(e,"g"),d=-1,h;h=c.X(f);){a.W(b,h,++d,f,c);c.12===h.P&&c.12++}I(e.1J)e.12=0};M.57=6(f,e){H 6 a(b,c){K d=e[c].1I?e[c]:{1I:e[c]},h=r(d.1I,"g"),g=[],i;O(i=0;i<b.L;i++)M.3p(b[i],h,6(k){g.U(d.3j?k[d.3j]||"":k[0])});H c===e.L-1||!g.L?g:a(g,c+1)}([f],0)};15.Z.1p=6(f,e){H J.X(e[0])};15.Z.W=6(f,e){H J.X(e)};15.Z.X=6(f){K e=n.X.1p(J,14),a;I(e){I(!x&&e.L>1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;b<e.L;b++)I(a=J.1w.19[b-1])e[a]=e[b];!D&&J.1J&&!e[0].L&&J.12>e.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;d<b.L;d++)I(b[d])14[0][b[d]]=14[d+1]}I(a&&f.1J)f.12=14[14.L-2]+14[0].L;H e.1p(N,14)});Y{c=J+"";c=n.Q.W(c,f,6(){K d=14;H n.Q.W(e,C,6(h,g,i){I(g)5b(g){24"$":H"$";24"&":H d[0];24"`":H d[d.L-1].1a(0,d[d.L-2]);24"\'":H d[d.L-1].1a(d[d.L-2]+d[0].L);5a:i="";g=+g;I(!g)H h;O(;g>d.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P<a.L&&3b.Z.U.1p(b,d.1a(1));h=d[0].L;c=f.12;I(b.L>=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a<d.L&&i==N;a++)i=p(d[a],b,c);H i}6 C(a,b){K c={},d;O(d 2g a)c[d]=a[d];O(d 2g b)c[d]=b[d];H c}6 w(a,b,c,d){6 h(g){g=g||1P.5y;I(!g.1F){g.1F=g.52;g.3N=6(){J.5w=11}}c.W(d||1P,g)}a.3g?a.3g("4U"+b,h):a.4y(b,h,11)}6 A(a,b){K c=e.1Y.2j,d=N;I(c==N){c={};O(K h 2g e.1U){K g=e.1U[h];d=g.4x;I(d!=N){g.1V=h.4w();O(g=0;g<d.L;g++)c[d[g]]=h}}e.1Y.2j=c}d=e.1U[c[a]];d==N&&b!=11&&1P.1X(e.13.1x.1X+(e.13.1x.3E+a));H d}6 v(a,b){O(K c=a.1e("\\n"),d=0;d<c.L;d++)c[d]=b(c[d],d);H c.1K("\\n")}6 u(a,b){I(a==N||a.L==0||a=="\\n")H a;a=a.Q(/</g,"&1y;");a=a.Q(/ {2,}/g,6(c){O(K d="",h=0;h<c.L-1;h++)d+=e.13.1W;H d+" "});I(b!=N)a=v(a,6(c){I(c.L==0)H"";K d="";c=c.Q(/^(&2s;| )+/,6(h){d=h;H""});I(c.L==0)H d;H d+\'<17 1g="\'+b+\'">\'+c+"</17>"});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+="                    ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.P<b.P)H-1;Y I(a.P>b.P)H 1;Y I(a.L<b.L)H-1;Y I(a.L>b.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'<a 2h="\'+c+\'">\'+c+"</a>"+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<a.L;c++)a[c].3s=="20"&&b.U(a[c]);H b}6 f(a){a=a.1F;K b=p(a,".20",R);a=p(a,".3O",R);K c=1E.4i("3t");I(!(!a||!b||p(a,"3t"))){B(b.1c);r(b,"1m");O(K d=a.3G,h=[],g=0;g<d.L;g++)h.U(d[g].4z||d[g].4A);h=h.1K("\\r");c.39(1E.4D(h));a.39(c);c.2C();c.4C();w(c,"4u",6(){c.2G.4E(c);b.1l=b.1l.Q("1m","")})}}I(1j 3F!="1d"&&1j M=="1d")M=3F("M").M;K e={2v:{"1g-27":"","2i-1s":1,"2z-1s-2t":11,1M:N,1t:N,"42-45":R,"43-22":4,1u:R,16:R,"3V-17":R,2l:11,"41-40":R,2k:11,"1z-1k":11},13:{1W:"&2s;",2M:R,46:11,44:11,34:"4n",1x:{21:"4o 1m",2P:"?",1X:"1v\\n\\n",3E:"4r\'t 4t 1D O: ",4g:"4m 4B\'t 51 O 1z-1k 4F: ",37:\'<!4T 1z 4S "-//4V//3H 4W 1.0 4Z//4Y" "1Z://2y.3L.3K/4X/3I/3H/3I-4P.4J"><1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v</1t></3J><3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;"><T 1L="2O-3D:3C;3w-32:1.6z;"><T 1L="25-22:6A-6E;">1v</T><T 1L="25-22:.6C;3w-6B:6R;"><T>3v 3.0.76 (72 73 3x)</T><T><a 2h="1Z://3u.2w/1v" 1F="38" 1L="2f:#3y">1Z://3u.2w/1v</a></T><T>70 17 6U 71.</T><T>6T 6X-3x 6Y 6D.</T></T><T>6t 61 60 J 1k, 5Z <a 2h="6u://2y.62.2w/63-66/65?64=5X-5W&5P=5O" 1L="2f:#3y">5R</a> 5V <2R/>5U 5T 5S!</T></T></3B></1z>\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'<T 1g="16">\',d=e.16.2x,h=d.2X,g=0;g<h.L;g++)c+=(d[h[g]].1H||b)(a,h[g]);c+="</T>";H c},2o:6(a,b,c){H\'<2W><a 2h="#" 1g="6e 6h\'+b+" "+b+\'">\'+c+"</a></2W>"},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h<c.L;h++)d.U(c[h]);c=d}c=c;d=[];I(e.13.2M)c=c.1O(z());I(c.L===0)H d;O(h=0;h<c.L;h++){O(K g=c[h],i=a,k=c[h].1l,j=3W 0,l={},m=1f M("^\\\\[(?<2V>(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g<c.L;g++){b=c[g];K i=b.1F,k=b.1n,j=k.1D,l;I(j!=N){I(k["1z-1k"]=="R"||e.2v["1z-1k"]==R){d=1f e.4l(j);j="4O"}Y I(d=A(j))d=1f d;Y 6H;l=i.3X;I(h.2M){l=l;K m=x(l),s=11;I(m.1i("<![6G[")==0){m=m.4h(9);s=R}K o=m.L;I(m.1i("]]\\>")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;m<j.L;m++)j[m].P+=l}K c=A(a),d,h=1f e.1U.5Y,g=J,i="2F 1H 2Q".1e(" ");I(c!=N){d=1f c;O(K k=0;k<i.L;k++)(6(){K j=i[k];g[j]=6(){H h[j].1p(h,14)}})();d.28==N?1P.1X(e.13.1x.1X+(e.13.1x.4g+a)):h.2J.U({1I:d.28.17,2D:6(j){O(K l=j.17,m=[],s=d.2J,o=j.P+j.18.L,F=d.28,q,G=0;G<s.L;G++){q=y(l,s[G]);b(q,o);m=m.1O(q)}I(F.18!=N&&j.18!=N){q=y(j.18,F.18);b(q,j.P);m=m.1O(q)}I(F.1b!=N&&j.1b!=N){q=y(j.1b,F.1b);b(q,j.P+j[0].5Q(j.1b));m=m.1O(q)}O(j=0;j<m.L;j++)m[j].1V=c.1V;H m}})}};e.4j=6(){};e.4j.Z={V:6(a,b){K c=J.1n[a];c=c==N?b:c;K d={"R":R,"11":11}[c];H d==N?c:d},3Y:6(a){H 1E.4i(a)},4c:6(a,b){K c=[];I(a!=N)O(K d=0;d<a.L;d++)I(1j a[d]=="2m")c=c.1O(y(b,a[d]));H J.4e(c.6b(D))},4e:6(a){O(K b=0;b<a.L;b++)I(a[b]!==N)O(K c=a[b],d=c.P+c.L,h=b+1;h<a.L&&a[b]!==N;h++){K g=a[h];I(g!==N)I(g.P>d)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P<d)a[h]=N}H a},4d:6(a){K b=[],c=2u(J.V("2i-1s"));v(a,6(d,h){b.U(h+c)});H b},3U:6(a){K b=J.V("1M",[]);I(1j b!="2m"&&b.U==N)b=[b];a:{a=a.1q();K c=3W 0;O(c=c=1Q.6c(c||0,0);c<b.L;c++)I(b[c]==a){b=c;1N a}b=-1}H b!=-1},2r:6(a,b,c){a=["1s","6i"+b,"P"+a,"6r"+(b%2==0?1:2).1q()];J.3U(b)&&a.U("67");b==0&&a.U("1N");H\'<T 1g="\'+a.1K(" ")+\'">\'+c+"</T>"},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i<d;i++){K k=b?b[i]:h+i,j;I(k==0)j=e.13.1W;Y{j=g;O(K l=k.1q();l.L<j;)l="0"+l;j=l}a=j;c+=J.2r(i,k,a)}H c},49:6(a,b){a=x(a);K c=a.1e("\\n");J.V("2z-1s-2t");K d=2u(J.V("2i-1s"));a="";O(K h=J.V("1D"),g=0;g<c.L;g++){K i=c[g],k=/^(&2s;|\\s)+/.X(i),j=N,l=b?b[g]:d+g;I(k!=N){j=k[0].1q();i=i.1o(j.L);j=j.Q(" ",e.13.1W)}i=x(i);I(i.L==0)i=e.13.1W;a+=J.2r(g,l,(j!=N?\'<17 1g="\'+h+\' 5N">\'+j+"</17>":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"</4a>":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i<b.L;i++){K k=b[i],j;I(!(k===N||k.L===0)){j=c(k);h+=u(a.1o(d,k.P-d),j+"48")+u(k.1T,j+k.23);d=k.P+k.L+(k.75||0)}}h+=u(a.1o(d),c()+"48");H h},1H:6(a){K b="",c=["20"],d;I(J.V("2k")==R)J.1n.16=J.1n.1u=11;1l="20";J.V("2l")==R&&c.U("47");I((1u=J.V("1u"))==11)c.U("6S");c.U(J.V("1g-27"));c.U(J.V("1D"));a=a.Q(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"").Q(/\\r/g," ");b=J.V("43-22");I(J.V("42-45")==R)a=n(a,b);Y{O(K h="",g=0;g<b;g++)h+=" ";a=a.Q(/\\t/g,h)}a=a;a:{b=a=a;h=/<2R\\s*\\/?>|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i<b.L&&g>0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i<b.L;i++)b[i]=b[i].1o(g);a=b.1K("\\n")}I(1u)d=J.4d(a);b=J.4c(J.2J,a);b=J.4b(a,b);b=J.49(b,d);I(J.V("41-40"))b=E(b);1j 2H!="1d"&&2H.3S&&2H.3S.1C(/5s/)&&c.U("5t");H b=\'<T 1c="\'+t(J.1c)+\'" 1g="\'+c.1K(" ")+\'">\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"</2d>":"")+\'<2d 1g="17"><T 1g="3O">\'+b+"</T></2d></3P></3T></3Z></T>"},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,'||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83'.split('|'),0,{}));


(function(){typeof(require)!='undefined'?SyntaxHighlighter=require('shCore').SyntaxHighlighter:null;function Brush(){var keywords='break case catch continue '+'default delete do else false  '+'for function if in instanceof '+'new null return super switch '+'this throw true try typeof var while with';var r = SyntaxHighlighter.regexLib;this.regexList=[{regex:r.multiLineDoubleQuotedString,css:'string'},{regex:r.multiLineSingleQuotedString,css: 'string'},{regex:r.singleLineCComments,css:'comments' },{ regex: r.multiLineCComments,css:'comments'},{regex: /\s*#.*/gm,css:'preprocessor'},{regex:new RegExp(this.getKeywords(keywords),'gm'),css:'keyword'}];this.forHtmlScript(r.scriptScriptTags);};Brush.prototype=new SyntaxHighlighter.Highlighter();Brush.aliases=['js','jscript','javascript'];SyntaxHighlighter.brushes.JScript=Brush;typeof(exports) != 'undefined' ? exports.Brush = Brush : null;})();

(function(){typeof(require)!='undefined'?SyntaxHighlighter=require('shCore').SyntaxHighlighter:null;function Brush(){function process(match,regexInfo){var constructor=SyntaxHighlighter.Match,code = match[0],tag=new XRegExp('(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)','xg').exec(code),result = [];if(match.attributes!=null){var attributes,regex=new XRegExp('(?<name> [\\w:\\-\\.]+)'+'\\s*=\\s*'+'(?<value> ".*?"|\'.*?\'|\\w+)','xg');while((attributes=regex.exec(code))!=null){result.push(new constructor(attributes.name, match.index+attributes.index,'color1'));result.push(new constructor(attributes.value, match.index+attributes.index+attributes[0].indexOf(attributes.value),'string'));}}if(tag!=null)result.push(new constructor(tag.name,match.index+tag[0].indexOf(tag.name),'keyword'));return result;}this.regexList = [{regex:new XRegExp('(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)','gm'),css: 'color2'},{regex:SyntaxHighlighter.regexLib.xmlComments,css: 'comments' },{regex: new XRegExp('(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)','sg'),func:process}];};Brush.prototype=new SyntaxHighlighter.Highlighter();Brush.aliases=['xml','xhtml','xslt','html'];SyntaxHighlighter.brushes.Xml = Brush;typeof(exports)!='undefined'?exports.Brush=Brush:null;})();

SyntaxHighlighter.all();

</script>
</body>
</html>